まりふのひと

Word2010の表を「はてな」の表に変換するマクロ

炭焼き記録の表の部分は、j前回の表を Wordにコピペ、kWord上で列の入れ替え・今回の記録を入力、lはてなの表にマクロで変換、mはてなにコピペして作っている。
ところが、常用しているデスクトップ機(WindowsXP)が入院中で、仕方なく 27日のブログは、ノートパソコン(Windows7)の Word2010を起動、上記手順のlでマクロがないことに気がついた。
WindowsXPのWord2003のマクロのバックアップを取っていなかったのだ
ブログを探しても見つからなかったので、仕方なく全手動で作成したが、これを機にブログにアップしておこうと...


 Wordのマクロ

Sub はてな形式の表に変換する()
Const strVersion As String = " (初版:H24.05.28)"
Dim strTitle As String

    strTitle = "はてな形式の表に変換する" & strVersion
    If MsgBox("カーソルのある表を「はてな」の表に変換します。" & vbCrLf & vbCrLf _
            & " ■ 表以外の文字列等があると、上手く処理できません。" & vbCrLf _
            & " ■ 表は選択しません。" & vbCrLf _
            & " ■ 太字は反映されません。" & vbCrLf _
            & " ■ セル内改行は[Shift]+[Enter]です。" _
            , vbOKCancel + vbInformation, strTitle) = vbCancel Then Exit Sub
        '表を文字列に変換する。区切り記号は"|"
    Selection.Rows.ConvertToText Separator:=wdSeparateByDefaultListSeparator, _
        NestedTables:=True
        '文末の段落記号を削除する。
    Selection.EndKey Unit:=wdStory
    Selection.TypeBackspace
        '文頭にカーソルを移動する。
    Selection.HomeKey Unit:=wdStory
        '段落記号の前後に"|"を付ける(置換)
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "^p"
        .Replacement.Text = "|^p|"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = False
        .MatchFuzzy = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
        '文頭に"|"を挿入する。
    Selection.HomeKey Unit:=wdStory
    Selection.TypeText Text:="|"
        '文末の"|"を削除する。
    Selection.EndKey Unit:=wdStory
    Selection.TypeBackspace
    Selection.TypeBackspace
        '↓(任意指定の行区切り)を"<br>"に置換する。
    With Selection.Find
        .Text = "^l"
        .Replacement.Text = "<br>"
        .Forward = True
        .Wrap = wdFindContinue
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
        '文頭にカーソルを移動する。
    Selection.HomeKey Unit:=wdStory
    MsgBox "終了しました。" & vbCrLf & "タイトル行の項目には * を付けてください。" _
            , vbOKOnly, strTitle

End Sub


 マクロの保存場所

  • Word2010
    • C:\Users\ログイン名\AppData\Roaming\Microsoft\Templates\Normal.dotm
  • Word2003
    • 入院中のため、後日記載する。