みたにっき@はてな

三谷純のブログ

Wordにプログラムコード貼り付け

プログラムを書く場合、たいていのテキストエディタではifやforのようなプログラム上の予約語(キーワード)は強調表示してくれたり、コメントは色を変えて表示してくれたりしますが、Wordにプログラムコードを貼り付ける場合に、同じようなことをするにはどうすればよいのでしょ??
いろいろ検索してみたけれど、うまく実現する方法が見あたらなくて、次のようなWordマクロを作ってみました。

Sub myReplace(keyword)
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    Set myFont = New Font
    myFont.Bold = True
    myFont.Color = wdColorViolet

    With Selection.Find
        .Text = keyword
        .Replacement.Text = keyword
        .Replacement.Font = myFont
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = True
        .MatchWholeWord = True
        .MatchByte = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = False
        .MatchFuzzy = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

引数のkeywordで渡された文字列を、紫色の太字に変換するマクロです。myFontに好みのフォントスタイルを指定すれば置換後のスタイルを簡単に変えれます。
この関数に予約語を渡してあげればOK。
と、思ったのですが、この方法だとコメント部分の色を変換することができないではないですか。。Wordの置換で正規表現は使えないのかなぁ・・。とかなんとか、ドツボにはまって悩んでしまいました。

でも、結局の所、プログラムコードを色つきのHTMLに変換するツールは各種あるみたいなので、それを使ってそれをコピペしてしまえばOK!?