初心者でも実践できるWordマクロ入門:
文字カウント編
初心者でも実践できるWordマクロ入門:
文字カウント編
業界や職種に関係なく、普段の業務でMicrosoft Wordを使用している方は多いと思います。翻訳会社の制作部でも、Word上で文章校正を掛けたり、一括処理を行ったりするなど、日常的にWordを使用しています。
しかし、MicorsoftアプリケーションにはVBA(Visual Basic for Applications)というマクロ言語用のプログラミング言語が搭載されており、Wordでももちろん利用できることはご存知でしたか?
このVBAでマクロを作成すると、たとえば普段ルーティンで行なっているさまざまな手動の処理を、ボタンひとつで自動で簡単に実行することができます。例えば翻訳会社の場合、ボリュームの大きいファイルをチェックする際などに、以下のような処理についてマクロを使って行うことができます。
手動で行うことを考えると気が遠くなる作業ですが、マクロを使えばボタンを1度押すだけで完了です。
この便利なマクロ機能、実は初心者でも簡単に使いこなせます。この記事では入門編として使用方法の一例をご紹介します。
今回は、文字列のカウント機能の作成の方法を紹介します。検索機能を使用して一つ一つ数を確認することも可能ですが、よく使用するものである場合、その条件でマクロを作成しておくと、ボタンひとつで処理ができるようになります。
さて、実際にコードを書いていく前に行うステップがあります。詳細については以下のサイトをご覧ください。まったくの初心者でも非常にわかりやすく解説されています。
Word VBA入門の最初の一歩!マクロ作成準備の6つのステップ
以上の準備を行なった後は、いよいよコードを書いていきましょう。
以下のようなドキュメントがあるとします。
A|タイトル
B|本文
A|タイトル
B|本文
…
タグ部分(A|、B|)が作業時に削除されていないか数を確認したい場合などに活用できる、「タグの数をカウントしてテキストボックスに表示する」マクロを作ってみましょう。
コードウィンドウに、以下のように入力します。
Sub タグの数() ‘プロシージャ名
Dim myRE As Object ‘Object型の変数
Dim myMatch As Object
Dim myText As String ‘String型の変数
Dim atag As Integer ‘A|タグ用の変数
Dim btag As Integer ‘B|タグ用の変数
myText = ActiveDocument.Range.Text ‘現在アクティブなドキュメントのテキスト
Set myRE = CreateObject("VBScript.RegExp") '正規表現のオブジェクトをセット
'Aタグの数を数える
With myRE ‘この下に検索条件を指定
.Pattern = "A\|" '検索する文字列。|はエスケープする
.IgnoreCase = False '大文字と小文字を区別する
.Global = True '文字列全体を検索
Set myMatch = .Execute(myText) ‘検索を実行
atag = myMatch.Count ‘変数にA|の数を格納
End With
‘Bタグの数を数える
With myRE
.Pattern = "B\|"
.IgnoreCase = False
.Global = True
Set myMatch = .Execute(myText)
btag = myMatch.Count
End With
'それぞれのタグの合計をメッセージボックスで表示
MsgBox "A|:" & atag & "個 " &" B|:" & btag & "個"
End Sub ‘終わり
これでマクロ作成完了です。
実行すると、以下のようなメッセージが表示されます。
このマクロをリボンに表示させれば、次からボタンを押すのみでタグの確認ができます。
このように検索用のマクロを一つ作成すると、マッチ条件などを少し変えるだけで他のマクロも簡単に作成できますので、きっと重宝しますよ!
他にも、マクロを使ってボタン一つでスタイル(フォントや余白など)を整えることや、使用違反の文字のハイライト、重複している文字列の削除など様々なことができます。こんなケースに使えるマクロを教えてほしい、などご要望がありましたらぜひ下のフィードバックフォームからお知らせ下さい!