VS6には、複数行をまとめてコメントアウトする機能が用意されていない。
VS2003以降にはあって、これがなれると結構便利。
なので、VS6でも使いたい・・・と思い作ってみた。
---------------------------
Sub Comment ()
' Check a type of the active window
Dim win
Set win = ActiveWindow
If win.type <> "Text" Then
Exit Sub
End If
Dim CommentPos
Dim CommentStr
Dim StartRow
Dim StopRow
CommentPos = 0
CommentStr = "//" ' Symbol of the comment
StartRow = ActiveDocument.Selection.TopLine
StopRow = ActiveDocument.Selection.BottomLine
' Get position to insert the symbol.
For i = StartRow To StopRow
ActiveDocument.Selection.GoToLine i
ActiveDocument.Selection.SelectLine
orgLen = Len( ActiveDocument.Selection )
trmLen = Len( ActiveDocument.Selection )
If CommentPos < ( orglen - trmLen ) Then
CommentPos = orgLen - trmLen
End If
Next
' Add string of the symbol of comments to top of lines.
For i = StartRow To StopRow
ActiveDocument.Selection.GoToLine i
ActiveDocument.Selection.SelectLine
selLine = ActiveDocument.Selection
fstHalf = Mid( selLine, 1, CommentPos )
lstHalf = Mid( selLine, CommentPos + 1, Len( selLine ) - CommentPos + 1 )
ActiveDocument.Selection = fstHalf + CommentStr + lstHalf
Next
End Sub
---------------------------
2点注意
・コメント外しには対応していない
・コメント文字がコードの先頭でなく、行の先頭に来てしまうかも
・わけあって印刷したコードを手で打ち込んだので入力ミスがあるかも
以上。
Borland であったコード補完機能?を作ったら便利そうだなあ。