利用VBA在Word中排出漂亮的代码
引言
在学习编程的过程中,常常会使用word来做笔记,下面我将对如何利用word宏来进行代码的排版进行说明
1.工具
我用的是word2007,word2003和word2010操作也差不多
2.基本操作
从visual studio、QT、Android studio复制代码到word时,通常都会自带高光的,直接复制粘贴到word就行了。
但是作为一个精致的程序媛,怎么可能只满足这么点要求呢,我们通常看到的代码除了高光,还有灰色的背景和代码行号,下面才是我想介绍的重点了。
话不多说,为了不耽搁各位时间,先上图,看完图感兴趣的就接着看,觉得没什么用的看完图就可以先撤退了。
图1
图2
通常复制到word中的代码如图1所示,利用VBA进行word宏的编写可以为
代码添加行号和灰色背景
3.实现方法
打开word,利用Alt +F11,可以进入VBA,然后在“Normal -> 模块”,右键选择“插入模块”就行了,然后进行代码编写。(Normal是Word打开时会自动载入的一个模板文件,把宏放在这里,可以保证在任意一个Word文档中都能调用。)
部分代码
'统计行数Dim wordCount, lineCountSet myRange = Selection.RangelineCount = myRange.ComputeStatistics(Statistic:=wdStatisticLines)
'插入1*2的表格ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=1, NumColumns:= _2, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _wdAutoFitFixedWith Selection.Tables(1)If .Style <> "网格型" Then.Style = "网格型"End If.ApplyStyleHeadingRows = True.ApplyStyleLastRow = False.ApplyStyleFirstColumn = True.ApplyStyleLastColumn = False.ApplyStyleRowBands = True.ApplyStyleColumnBands = FalseEnd With
'设置代码行号 For i = 1 To lineCount - 1Selection.ParagraphFormat.LineSpacingRule = wdLineSpaceExactlySelection.ParagraphFormat.LineSpacing = 12Selection.Font.Size = 11Selection.Font.Color = BlackSelection.Font.Name = TahomaSelection.TypeText Text:=iSelection.TypeParagraph '换行 NextSelection.TypeText Text:=lineCount
Selection.Tables(1).Select' 背景色为morning的配色方案,RGB为(229,229,229)With Selection.Tables(1)With .Shading.Texture = wdTextureNone.ForegroundPatternColor = wdColorAutomatic.BackgroundPatternColor = 15066597End 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 WithWith Options.DefaultBorderLineStyle = wdLineStyleSingle.DefaultBorderLineWidth = wdLineWidth050pt.DefaultBorderColor = wdColorAutomaticEnd With' 段落无首行缩进,行间距为固定值12磅With Selection.ParagraphFormat.LeftIndent = CentimetersToPoints(0).RightIndent = CentimetersToPoints(0).SpaceBefore = 0.SpaceBeforeAuto = False.SpaceAfter = 0.SpaceAfterAuto = False.LineSpacingRule = wdLineSpaceExactly.LineSpacing = 12.KeepWithNext = False.KeepTogether = False.PageBreakBefore = False.NoLineNumber = False.Hyphenation = True.FirstLineIndent = CentimetersToPoints(0).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 = wdBaselineAlignAutoEnd WithSelection.Font.Size = 11Selection.Font.Name = Tahoma' 清除原有的段落底纹Selection.ParagraphFormat.Shading.BackgroundPatternColor = wdColorAutomatic
先选中需要进行处理的代码,然后点击word中开发工具,点击宏,运行即可。
也可以通过word选项,自定义,添加宏快捷键,运行时只需要先选中代码,然后点击快捷键。
详情可以去我上传的资源下载哦。
下载资源
利用VBA在Word中排出漂亮的代码相关推荐
- 如何在Word中排出漂亮的代码
引言 学数学和计算机,当然还是用LaTeX排版技术文章更方便.但有时候还是迫不得已需要用Word写作,另外Word其实也有Word的好处,比如细节上的修改要比LaTeX方便. 从Matlab高亮代码复 ...
- 如何在Word中排出漂亮的代码,去除回车符,去除拼写检查
这位博主写到很到位,这里补充一下在VBA里用模块的部分. https://blog.csdn.net/code4101/article/details/41802715 1.放代码的方式是贴纯文本. ...
- 如何在Word中添加漂亮的代码块 | 很全的方法整理和比较
文章目录 一.网上已有的方法 二.推荐方法 一.网上已有的方法 网上已有的方法总结下来主要有以下几种: planetB | Syntax Highlight Code In Word Document ...
- 利用VBA实现word文档手写体打印
利用VBA实现word文档手写体打印 一.缘起 二.实现 1.下载手写字体 2.导入书写字体 3.效果展示 4.利用VBA优化 5.优化后效果 三.附件 1.A4纸打印效果 2.信纸打印效果 3.完整 ...
- 利用VBA将excel中链接转换为图片形式存放在指定的单元格中
利用VBA将excel中链接转换为图片形式存放在指定的单元格中 VBA代码如下 Private Declare Function URLDownloadToFile Lib "urlmon& ...
- 通过VBA将word中的表格导入到excel中
通过VBA将word中的表格导入到excel中 由于项目需要,需要将word中的表格按照格式导入到excel中,所以通过在word中写VBA程序的方式将word的内容导出到excel中. 1.添加&q ...
- 在word中使用notepad++实现代码的语法高亮
转载自:http://blog.csdn.net/woohello/article/details/7621651 有时写文档时需要将代码粘贴到word中,但直接粘贴到word中的代码虽能保持换行与缩 ...
- 如何用vba在word中快速移动或选中内容区域?
转自:http://www.exceloffice.net/archives/1598 在word中经常需要操作特定位置的文本内容,定位文本内容就显得尤为重要. 在word vba中Range. Se ...
- 如何用word写书_如何用vba在word中添加打勾的方框?
最近在做word vba项目,遇到个需求,需要根据条件判断批量输出打√的方框和不打√的方框,类似如下图所示: 本来以为是个很容易的事情,没想到阻碍不小. 首先,我们先看看如何在word文档中手动输入带 ...
最新文章
- Go 学习笔记(21)— 标准库 os 操作文件(新建、打开、写入、读取、删除、关闭文件)
- R语言ggplot2可视化分组的重叠图实战:grouped overlay plot
- 利用watch在小程序中实现全局状态共享
- Asp.net core使用IIS在windows上进行托管
- 【BZOJ 1877】 [SDOI2009]晨跑(费用流)
- *dev=filp-private_data;这一句的理解
- @Param注解注意事项(小的细节)
- 11.m进制转十进制
- java bean对象属性复制,将一个对象的属性值赋值给另一个对象,对象之间的复制方法
- 8.String、StringBuffer、enum枚举
- 高性能Javascript HTML集合访问的学习笔记
- “让我陪你走到人生的尽头。” | 也许AI能提供更好的临终关怀
- 专科python应届生工资多少-应届生自学Python两个月,为什么找不到工作?
- Ubuntu14.04 64位安装iNode客户端
- 【安信可IDE 1.5模板专题1】安信可windows一体化环境IDE V1.5 版本降临,体积更小,兼容新旧版本SDK编译
- echart自定义动画_echarts动画效果
- TEST语言编译器--语法分析
- python启动netron
- CentOS7环境下 人大金仓kes86数据库安装过程
- Matlab中interp2和interpn的差异