テキストで作成した議事録をWordに取り込んだ後、フォーマットを整形するVBAを作成してみた(その1)文字検索&アラインメント

Pocket

お仕事で議事録を作成するときに、まずはその場でメモを作成し、あとでWordに清書することがあると思います。

でも、メモからWordに取り込んで書式を整えるのって、結構時間がかかる割に、あまり価値のある作業ではないですよね。

そこで、今回は時短のために、テキストから取り込んだデータのフォーマットを自動的に整えるWord VBAを作成してみました。

1.変換前のWordデータ・イメージ

こちらはテキストの内容をWordに取り込んだ直後のイメージです。見た目は考えず、とりあえず打ち込んでいくとこんな感じになっていると思います。

フォーマットを整える前のデータ・イメージ

2.変換後のWordデータ・イメージ

1.の殴り書き状態からVBAを利用することで、以下の状態にフォーマットを整えさせます。

フォーマット調整後(1ページ目)

<解説>
1行目の作成日付を右寄せする。
2行目の「議事録」をタイトルとしてセンタリングする。
3行目〜9行目までの「日時:」「場所:」「参加者:」「アクションアイテム:」「次回:」を太字にする。

フォーマット調整後(2ページ目)

<解説>
10行目を次ページにした上で「内容:」を太字にする。

3.変換用VBA

そして以下がフォーマット整型用のVBAになります。(素人なので書き方がダサくてすみません。)

Option Explicit

Sub editMinuts()

With Selection.Find
    .Text = "2022."
    .MatchByte = True
    .Wrap = wdFindContinue
    .Execute
    Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
End With

With Selection.Find
    .Text = "議事録"
    .Wrap = wdFindContinue
    .Execute
    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
End With

With Selection.Find
    .Text = "日時:"
    .Wrap = wdFindContinue
    .Execute
    Selection.Font.Bold = True
End With

With Selection.Find
    .Text = "場所:"
    .Wrap = wdFindContinue
    .Execute
    Selection.Font.Bold = True
End With

With Selection.Find
    .Text = "参加者:"
    .Wrap = wdFindContinue
    .Execute
    Selection.Font.Bold = True
End With

With Selection.Find
    .Text = "アクションアイテム:"
    .Wrap = wdFindContinue
    .Execute
    Selection.Font.Bold = True
End With

With Selection.Find
    .Text = "次回:"
    .Wrap = wdFindContinue
    .Execute
    Selection.Font.Bold = True
End With

Selection.Move wdLine, 1

Selection.InsertBreak Type:=wdPageBreak

With Selection.Find
    .Text = "内容:"
    .Wrap = wdFindContinue
    .Execute
    Selection.Font.Bold = True
End With

End Sub

4.VBAの解説

それではポイントを少し解説しておきます。
なお、かなりアバウトに勉強しながら書いているので、雰囲気で説明している部分があります。
正確にはマイクロソフトの公式サイトなどを読んでください。

最初の方の3〜10行目あたり

With Selection.Find
    .Text = "2022."
    .MatchByte = True
    .Wrap = wdFindContinue
    .Execute
    Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
End With

<解説>
.Text = “2022.”:データの中から”2022.”を検索します。
.MatchByte = True:上記”2022.”に完全に一致する文字を検索します。(全角などはヒットしないようにしています)
.Wrap = wdFindContinue:1つ見つかっても、次を見つけにいきます。
.Execute:検索を実行します。
Selection.ParagraphFormat.Alignment = wdAlignParagraphRight:見つかったら、それを含む行を右寄せします。

下から8〜9行目あたり

Selection.Move wdLine, 1

Selection.InsertBreak Type:=wdPageBreak

<解説>
Selection.Move wdLine, 1:一つ手前の処理で「次回:」まで検索していますので、その下に改ページを入れる為、カーソルを1行進ませます。
Selection.InsertBreak Type:=wdPageBreak:改ページを挿入します。

今回は以上になりますが、今後時間があれば、Wordに表を入れるVBAなどを作成してみたいと考えています。


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA