您的位置:首页 > 编程语言 > VB

(VBA)Word中对选中的行(代码行)自动编号并修改注释的颜色

2010-01-28 17:12 609 查看
说实话,CSDN的这个插入代码的控件很好用,特别是自动添加行号的功能。

下面这段VBA代码就是在Word中,对你编辑的代码添加行号和对“//”以后的注释部分加上颜色。

用法:选中你希望添加行号的所有行,运行此VBA,即可在每行首添加“#001 ”字样的行号。对你选中的行,从1开始自动编号。你也可以把这段代码设置成一个按键,每次只要选中希望编号的行,然后点一下按键运行一下即可。

有时间再把对word中嵌入的代码的格式设置也加进来就更完美了~~~

以下代码在office2007中调试通过:
Sub 程序代码加行号()
Dim nLineNum           '行号(数值)
Dim sLineNum As String '行号(文字)
Dim selRge As Range
Dim i

'------------以下变量变量用于将注释改为蓝色------------
Dim lineProgramRange As Range  '单行程序代码范围
Dim commentRange As Range
Dim TextLine As String
Dim progComment As String
Dim RgnStart As Long
Dim RgnEnd As Long

Set selRge = Selection.Range
For nLineNum = 1 To selRge.Paragraphs.Count
sLineNum = Str(nLineNum)
sLineNum = LTrim(sLineNum)

'生成行号格式"001"
For i = 1 To (3 - Len(sLineNum))
sLineNum = "0" + sLineNum
Next i

'行号前加"#"
sLineNum = "#" & sLineNum
sLineNum = sLineNum + " "

'得到当前选中行 并设置颜色为蓝色
Set lineProgramRange = selRge.Paragraphs(nLineNum).Range
'Selection.Font.ColorIndex = wdBlue
lineProgramRange.Font.ColorIndex = wdBlue

selRge.Paragraphs(nLineNum).Range.InsertBefore (sLineNum)

'------------以下变量用于修改注释为绿色------------
Set lineProgramRange = selRge.Paragraphs(nLineNum).Range
TextLine = lineProgramRange.Text
charpos = InStr(1, TextLine, "//")   'C语言单行注释标志

If charpos <> 0 Then  '存在注释的时候才需要处理
progComment = Mid(TextLine, charpos)  '切割出注释文字
RgnStart = lineProgramRange.Start
RgnEnd = lineProgramRange.End
lineProgramRange.SetRange Start:=RgnStart + charpos - 1, End:=RgnEnd  '感谢zhupanxin的修改

lineProgramRange.Select
Selection.Font.ColorIndex = wdGreen

End If

'------------以下用于修改关键字 颜色、字体------------

Next nLineNum

End Sub
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: