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. django_auth模块

    auth是django提供的标准权限管控系统,可以提供用户的身份认证.用户组和权限管理. auth可以和admin配合使用,可以快速建立网站的管理系统. USER user用于维护系统的用户信息,在数 ...

  2. DP Training(Updating)♪(^∇^*)

    DP Training DP Training 01 https://vjudge.net/contest/220286 密码 nfls A 数塔(Easy) \(f[i][j]\) 表示当前选第 \ ...

  3. BZOJ1257(数论知识)

    感觉做法很神奇……想不到啊qwq 题目: Description 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值 其中k ...

  4. linux系统任务调度命令crontab

    循环重复的执行计划任务.有计划性的执行任务,像这种任务,在linux系统中就有cron命令来完成. linux系统下的任务调度分为两类:系统任务调度和用户任务调度. /etc/crontab文件就是系 ...

  5. Windows如何利用输入法简单的打出 ‘↑’ ‘↓’ ‘↖’等箭头

    ‘↑’  shang ‘↓’ xia ‘←’ zuo ‘→’ you ‘↖’ zuoshang ‘↙’  zuoxia ‘↗’  youshang ‘↘’  youxia

  6. 如何连接MDB数据,并且获取相关的数据

    不说了直接上代码: try{ String str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + address + & ...

  7. CF1081C Colorful Bricks

    思路: dp[i][j]表示到第i个砖块为止共计有j个砖块和它左边的砖块颜色不同. 实现: #include <bits/stdc++.h> using namespace std; ty ...

  8. Android属性系统简介

    1.简介 在android 系统中,为统一管理系统的属性,设计了一个统一的属性系统.每个属性都有一个名称和值,他们都是字符串格式.属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息 ...

  9. sqlite的应用

    对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,我们可以轻松的完成对数据的存取.下面就向大家介绍一下SQLite常用的操作方法.本篇文章主要用到SQLiteDataba ...

  10. codevs 1131 统计单词数 2011年NOIP全国联赛普及组

     时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题目描述 Description 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位 ...