2008年12月28日日曜日

コメントアウトマクロ、VisualStudio6.0 ( VS6 )

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 であったコード補完機能?を作ったら便利そうだなあ。
 
 

0 件のコメント:

コメントを投稿