1. 最终效果图
      • 最终的效果图如下:
    2. VBA的编写参考
    3. 将VBA脚本复制到Word中并设置快捷键
      • Alt+F11 打开Word中的 VBS,将下列的VB代码复制 Normal 模板下的 Microsoft 对象下的 ThisDocument中
        • 复制位置
        • VB代码
          • #If VBA7 Then

            Private Declare PtrSafe Function timeGetTime Lib "winmm.dll" () As Long

            #Else

            Private Declare Function timeGetTime Lib "winmm.dll" () As Long

            #End If

            Sub EditCode()

            'Word 正文需要设置为无首行缩进

            'Notepad++不能以管理员的身份运行

            'Notepad++中,'Plugin Commands'中的 'Copy HTML to clipboard'需设置快捷键为 ALT + Shift + C

            AppActivate "NotePad++"

            SendKeys "%+c"

            , NumColumns:= _

            , DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _

            wdAutoFitFixed

            Dim Savetime As Double

            Savetime = timeGetTime '记下开始时的时间

            While timeGetTime < Savetime + 5 '循环等待

            DoEvents '转让控制权,以便让操作系统处理其它的事件

            Wend

            Selection.Paste

            '删除所有可编辑的区域

            ActiveDocument.DeleteAllEditableRanges wdEditorEveryone

            '添加可编辑区域

            ).Range.Editors.Add wdEditorEveryone

            '选中所有可编辑区域

            ActiveDocument.SelectAllEditableRanges wdEditorEveryone

            设置代码表格

            Selection.Cut

            '删除所有可编辑的区域

            ActiveDocument.DeleteAllEditableRanges wdEditorEveryone

            SendKeys ("^%({TAB})")

            End Sub

            Sub 设置代码表格()

            ' author: code4101

            ' 设置代码表格 宏

            '

            '

            ' 背景色为morning的配色方案,RGB为(229,229,229)

            With Selection.Tables(1)

            With .Shading

            .Texture = wdTextureNone

            .ForegroundPatternColor = wdColorAutomatic

            .BackgroundPatternColor = 15066597

            End With

            .Borders(wdBorderLeft).LineStyle = wdLineStyleNone

            .Borders(wdBorderRight).LineStyle = wdLineStyleNone

            .Borders(wdBorderTop).LineStyle = wdLineStyleNone

            .Borders(wdBorderBottom).LineStyle = wdLineStyleNone

            .Borders(wdBorderVertical).LineStyle = wdLineStyleNone

            .Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleNone

            .Borders(wdBorderDiagonalUp).LineStyle = wdLineStyleNone

            .Borders.Shadow = False

            .AutoFitBehavior (wdAutoFitContent)  '自动调整大小

            End With

            With Options

            .DefaultBorderLineStyle = wdLineStyleSingle

            .DefaultBorderLineWidth = wdLineWidth050pt

            .DefaultBorderColor = wdColorAutomatic

            End With

            With Selection.ParagraphFormat

            )

            )

            .SpaceBefore = 0

            .SpaceBeforeAuto = False

            .SpaceAfter = 0

            .SpaceAfterAuto = False

            .LineSpacingRule = wdLineSpaceExactly

            .LineSpacing = 12

            .KeepWithNext = False

            .KeepTogether = False

            .PageBreakBefore = False

            .NoLineNumber = False

            .Hyphenation = True

            )

            .OutlineLevel = wdOutlineLevelBodyText

            .CharacterUnitLeftIndent = 0

            .CharacterUnitRightIndent = 0

            .CharacterUnitFirstLineIndent = 0

            .LineUnitBefore = 0

            .LineUnitAfter = 0

            .MirrorIndents = False

            .TextboxTightWrap = wdTightNone

            .AutoAdjustRightIndent = True

            .DisableLineHeightGrid = False

            .FarEastLineBreakControl = True

            .WordWrap = True

            .HangingPunctuation = True

            .HalfWidthPunctuationOnTopOfLine = False

            .AddSpaceBetweenFarEastAndAlpha = True

            .AddSpaceBetweenFarEastAndDigit = True

            .BaseLineAlignment = wdBaselineAlignAuto

            End With

            ' 清除原有的段落底纹

            Selection.ParagraphFormat.Shading.BackgroundPatternColor = wdColorAutomatic

            Selection.Font.Name = "Consolas"

            End Sub

      • 设置宏 EditCode的快捷键
        • 在Word选项的自定义功能区,选项自定义键盘快捷键
        • 将EditCode设置为自己想要的快捷键,我设置的是 Alt + 1,注意不要与现存的快捷键冲突
    1. NotePad++设置
      • 确保NotePad++安装了NppExport插件,并设置 Copy HTML to clipboard 的快捷键为 Alt + Shift + C
    1. 宏的使用
      • 首先确保只打开一个NotePad++窗口,并且把当前的文件设置为要复制的文件,而且要确保NotePad++ 中的代码是高亮状态。
      • ,等到出现Alt + Tab 页面时,就说明复制完成。
      • 此时,直接在Onenote中按 Ctrl + V 即可完成复制
      • 使用注意事项
        • Word 正文需要设置为无首行缩进
        • 'Notepad++不能以管理员的身份运行
    2. 后续改进方向
      • 本来想让Word宏自动识别出Onenote窗口,并完成复制操作。但是Appactive好像不能很好的识别桌面版的 Onenote 窗口,测试了下,可以识别应用商店版的Onenote窗口,但是发送组合键Ctrl+V时,有时会出现失效,所以只是把相应的代码贴出来供大家参考吧。
        • 代码
          • #If VBA7 Then

            Private Declare PtrSafe Function timeGetTime Lib "winmm.dll" () As Long

            #Else

            Private Declare Function timeGetTime Lib "winmm.dll" () As Long

            #End If

            Sub EditCode()

            'Word 正文需要设置为无首行缩进

            'Notepad++不能以管理员的身份运行

            'Notepad++中,'Plugin Commands'中的 'Copy HTML to clipboard'需设置快捷键为 ALT + Shift + C

            AppActivate "NotePad++"

            SendKeys "%+c"

            , NumColumns:= _

            , DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _

            wdAutoFitFixed

            Dim Savetime As Double

            Savetime = timeGetTime '记下开始时的时间

            While timeGetTime < Savetime + 5 '循环等待

            DoEvents '转让控制权,以便让操作系统处理其它的事件

            Wend

            Selection.Paste

            '删除所有可编辑的区域

            ActiveDocument.DeleteAllEditableRanges wdEditorEveryone

            '添加可编辑区域

            ).Range.Editors.Add wdEditorEveryone

            '选中所有可编辑区域

            ActiveDocument.SelectAllEditableRanges wdEditorEveryone

            设置代码表格

            Selection.Cut

            '删除所有可编辑的区域

            ActiveDocument.DeleteAllEditableRanges wdEditorEveryone

            'SendKeys ("^%({TAB})")

            AppActivate "OneNote"

            SendKeys ("{ESC}{ESC}^v")

            End Sub

            Sub 设置代码表格()

            ' author: code4101

            ' 设置代码表格 宏

            '

            '

            ' 背景色为morning的配色方案,RGB为(229,229,229)

            With Selection.Tables(1)

            With .Shading

            .Texture = wdTextureNone

            .ForegroundPatternColor = wdColorAutomatic

            .BackgroundPatternColor = 15066597

            End With

            .Borders(wdBorderLeft).LineStyle = wdLineStyleNone

            .Borders(wdBorderRight).LineStyle = wdLineStyleNone

            .Borders(wdBorderTop).LineStyle = wdLineStyleNone

            .Borders(wdBorderBottom).LineStyle = wdLineStyleNone

            .Borders(wdBorderVertical).LineStyle = wdLineStyleNone

            .Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleNone

            .Borders(wdBorderDiagonalUp).LineStyle = wdLineStyleNone

            .Borders.Shadow = False

            .AutoFitBehavior (wdAutoFitContent)  '自动调整大小

            End With

            With Options

            .DefaultBorderLineStyle = wdLineStyleSingle

            .DefaultBorderLineWidth = wdLineWidth050pt

            .DefaultBorderColor = wdColorAutomatic

            End With

            With Selection.ParagraphFormat

            )

            )

            .SpaceBefore = 0

            .SpaceBeforeAuto = False

            .SpaceAfter = 0

            .SpaceAfterAuto = False

            .LineSpacingRule = wdLineSpaceExactly

            .LineSpacing = 12

            .KeepWithNext = False

            .KeepTogether = False

            .PageBreakBefore = False

            .NoLineNumber = False

            .Hyphenation = True

            )

            .OutlineLevel = wdOutlineLevelBodyText

            .CharacterUnitLeftIndent = 0

            .CharacterUnitRightIndent = 0

            .CharacterUnitFirstLineIndent = 0

            .LineUnitBefore = 0

            .LineUnitAfter = 0

            .MirrorIndents = False

            .TextboxTightWrap = wdTightNone

            .AutoAdjustRightIndent = True

            .DisableLineHeightGrid = False

            .FarEastLineBreakControl = True

            .WordWrap = True

            .HangingPunctuation = True

            .HalfWidthPunctuationOnTopOfLine = False

            .AddSpaceBetweenFarEastAndAlpha = True

            .AddSpaceBetweenFarEastAndDigit = True

            .BaseLineAlignment = wdBaselineAlignAuto

            End With

            ' 清除原有的段落底纹

            Selection.ParagraphFormat.Shading.BackgroundPatternColor = wdColorAutomatic

            Selection.Font.Name = "Consolas"

            End Sub

        • 使用时,要先将Onenote中的光标放在要插入代码的位置,运行宏后可以实现自动插入。

Onenote代码高亮的实现方法的更多相关文章

  1. OneNote代码高亮完美解决方案(全网最全)

    0. 引子 OneNote作为一款记笔记的软件,免费实用,有助于自己形成树状结构知识框架.但是它有一个令人头疼的问题就是:无法代码高亮.而NoteHightlight2016正是解决这个问题的完美利器 ...

  2. google code-prettify 代码高亮插件使用方法

    找代码高亮插件选了好久,还是这个使用起来比较方便. 先上链接:插件下载地址 官方使用方法地址 建议看官方的资料,我这里仅仅简要描述一下使用方法: 引入方法: 测试引入是否成功:herf 换成 自己放置 ...

  3. OneNote代码高亮

    向OneNote 2016安装NoteHighlight 下载.msi 文件,下载链接 下载之前查看自己的电脑上安装的OneNote版本以及位数(32-64) 查看方法:文件->选项->关 ...

  4. Python IDLE 代码高亮主题

    Python IDLE 代码高亮主题 使用方法: 打开C盘我的 C:\Documents and Settings\你的用户名.idlerc文件夹 里面会有一个 config-highlight.cf ...

  5. Xcode解决代码高亮、语法提示、错误警告等功能失效的解决方法

    在编写xcode的项目的时候出现过代码不高亮的症状,而且所有的warning都不再提示,include的内容也显示symbol not found,非常奇怪,解决方案如下: 方法一: 1.把.pch里 ...

  6. 代码高亮插件Codemirror使用方法及下载

    代码高亮插件Codemirror使用方法及下载 - 老男孩的日志 - 网易博客 代码高亮插件Codemirror使用方法及下载   2013-10-31 16:51:29|  分类: 默认分类 |   ...

  7. ueditor使用代码高亮的方法

    最近发现ueditor支持代码高亮,但是页面上并没有起效果,于是网上找了下,发现还需做如下修改: 1.页面引用以下资源文件(均位于ueditor目录中): <script type=" ...

  8. OLW (Open Live Writer)安装代码高亮插件方法(简明)

    1.首先下载OLW代码高亮插件,请点击--->OLW代码高亮插件 2.在你安装OLW的目录下(顺便说一下默认的安装目录为C:\Users\你的用户名\AppData\Local\OpenLive ...

  9. 如何在博客中使用SublimeText风格的代码高亮样式

    因为觉得博客园自带的代码高亮样式很单一,不符合作为前端的我的审美习惯,于是下定决心要想办法折腾出一个方法来应用上另外一套代码高亮样式. 虽然探索的过程是很痛苦的,但最后还是成功了,但也不枉付出的那些努 ...

随机推荐

  1. java操作rabbitmq实现简单的消息发送(socket编程的升级)

    准备: 1.下载rabbitmq并搭建环境(和python那篇一样:http://www.cnblogs.com/g177w/p/8176797.html) 2.下载支持的jar包(http://re ...

  2. Spring Boot启动过程源码分析--转

    https://blog.csdn.net/dm_vincent/article/details/76735888 关于Spring Boot,已经有很多介绍其如何使用的文章了,本文从源代码(基于Sp ...

  3. mysql合服 更新相同的用户名前追加服务器编号

    表结构: CREATE TABLE IF NOT EXISTS `user` ( `) NOT NULL COMMENT '主键', `user_level` ) COMMENT '等级', `) C ...

  4. 開玩樹莓派(二):配置IP,實現無顯示器局域網內Putty連接和RDP遠程

    目錄: 開玩樹莓派(一):安裝Raspbian系統 開玩樹莓派(二):配置IP,實現無顯示器局域網內Putty連接和RDP遠程 開玩樹莓派(三):Python編程 開玩樹莓派(四):GPIO控制和遠程 ...

  5. kafka java api消费者

    import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Properties; imp ...

  6. poj2823滑动窗口

    这个是单调队列的入门题目.值得注意的一点是队列中的数的index是单调递增的,所以从队首删除的时候从前向后循环找到第一个index满足>= i - k + 1条件的元素作为队首元素就可以了,这也 ...

  7. JS动态获取项目名以及获取URL地址中的参数

    在项目当中我们可能会遇到例如改变的项目名称之后,相对应的地址就需要改变,为了减少工作量,将地址当中的项目名这一块写成动态获取的,那么最关键一点就是我要先获取它,再进行操作: 知识点整理,话不多说,直接 ...

  8. 盒子模型--IE与标准

    从上图可以看到标准 W3C 盒子模型的范围包括 margin.border.padding.content,并且 content 部分不包含其他部分. 从上图可以看到 IE 盒子模型的范围也包括 ma ...

  9. POJ 3133 Manhattan Wiring (插头DP,轮廓线,经典)

    题意:给一个n*m的矩阵,每个格子中有1个数,可能是0或2或3,出现2的格子数为2个,出现3的格子数为2个,要求将两个2相连,两个3相连,求不交叉的最短路(起终点只算0.5长,其他算1). 思路: 这 ...

  10. PostgressSQL-Installation

    安装 sudo apt install -y postgresql 自动生成一个名为 postgres 的 Linux 系统用户 $ finger postgres Login: postgres N ...