ワードマクロでテーブル(表)に書いた単語変換マクロの設定を読み取ろう

オフィスVBA
この記事は約6分で読めます。
スポンサーリンク

業務効率化したい人向けのワードマクロ初心者講座(ファイル選択フォーム, キー操作保存, 単語置換, 連想配列, テーブル情報読み込み)の第4回講座です。

前回までで、単語変換マクロは完成していますが、変換する単語を変更するときに、マクロコードを変更する必要があります。

最終回の今回は、マクロファイルのテーブル(表)に、変換する単語の情報を書いておき、マクロからテーブルに書いた設定を読み出すことで、マクロコードを変更することなく、変換する単語を変更することができるようにします。

それでは始めましょう。

スポンサーリンク

手順1. Wordのマクロファイルにテーブルを作成する

まず、マクロを書いているマクロ付きWordファイル、今回の講座では「単語変換マクロ第4回.docm」ですが、そのファイルにテーブル(表)を作成します。

手順1-1:マクロファイルにテーブルを追加

まず、テーブルを追加します。

下図のようにメニュー「挿入→表」をクリックし、出てくるサブウィンドウで、6行2列になる四角をクリックします。

すると、本文にテーブルが追加されました。

手順1-2:テーブルに単語変換情報を記述

ここに、変換する単語の情報を記述していきます。

一行目は、説明文としましょう。私は下図の用な感じで記述してきましょう。

一行目が説明文だとわかりやすくするために、セルに色をつけておきましょう。

①マウスで左クリックしながら、上の1行の2つのセルの文字を選択
②メニュー「ホーム→テーマの色」ですきな色を選択

わかりやすくなりましたね。

手順1-3:テーブルにタイトルを付ける

マクロコードから表を区別するために、表にタイトルをつけます。

表の中で右クリックし、「表のプロパティ」をクリックします。

「表のプロパティ」ウィンドウで、「代替テキスト」タブを選び、タイトルに「単語設定」と入力します。入力後「OK」をクリックして確定します。

以上でテーブルの準備はできました。

手順2. テーブル情報を読み取るするマクロを作成

 

手順2-1:マクロが記述してあるワードファイル文書のテーブルを検査

まずは、手順1で作ったWordファイルのテーブルをチェックするテストコードを書いてみましょう。

下図のコードを、標準モジュール「Module1」に書いてみてください。

書いた後は下図のようになります。

このコードはマクロとして実行可能です。

ワードのメニュー「開発→マクロ」と進み、マクロ名を選んで「実行」ボタンをクリックしてみてください。

下図のように、タイトルと、行数、列数を表示するメッセージボックスが開いたら成功です。

コードの説明は、コード中のコメントで書いておきます。

手順2-2:情報を連想配列に追加していく

次にテーブル内の情報を読み取っていきましょう。

手順2-1のコードに情報を追加するコードを追加すると、下のようなコードになります。

コード中にコードの説明は書いてありますが、少し追加して説明しますね。

For Next構文

For文については、記事「ワードマクロ:For Nextループによる繰り返し」で説明しています。ここでは、idx に 2から順に テーブルの最終行までを代入して、繰り返し処理を行います。

変換前単語の取得

str_mae という変数を定義して、変換前単語を代入してます。

しかし、表には下図のように、すべてのセルに改行コードが入ってしまってます。

これを削除するために、str_mae の中の改行コードである Chr(13) & Chr(7) を空文字列「””」に変換しています。変換には Replace というサブルーチンを使っています。

変換後単語も同様の処理をしています。

テストコードの実行

では、このコードを先ほどと同じ様に実行してみましょう。

すると下図のように、テーブル内の情報を表示するメッセージボックが表示されます。

情報の取得については以上になります。

手順3. 単語変換マクロへ組み込む

いよいよ、手順2までで作ったテーブル情報の読み込み処理を、単語変換マクロへ組み込みます。

手順3-1:テーブル読み込みマクロの修正

実は手順2で作った「テーブル読み込み」サブルーチンは、ほぼそのまま、単語変換マクロへ組み込むことができます。

変更しなければいけないところは以下の2点だけです。

  • 連想配列を引数渡しにする
  • 連想配列の表示処理を削除

早速やっていきましょう。

連想配列を引数渡しにする

まず、一行目を、Privateで修飾、引数に cnv_dic を Object型で追加します。

のようになります。

連想配列の表示処理を削除

これは、バッサリ削除するだけです。

「テーブル読み込み」サブルーチンの後半の以下の部分を削除してください。

 

以上になります。変更後の「テーブル読み込み」サブルーチンは以下のようになります。

手順3-2:マクロ本体から呼び出し処理追加

さて、最後の変更になります。

「マクロ本体」サブルーチンの中で、下図の「単語を追加」する処理を変更しましょう。

下図のように「テーブル読み込み」サブルーチンを呼び出す処理に変更します。

これで、cnv_dic に、テーブルから読み出した単語の情報が追加されます。

変更後の「マクロ本体」のコードは下図のようになります。

動かしてみよう

さて、では、最後に動かしてみましょう。

いつもどおり、マクロ実行ウィンドウから「単語変換マクロGUI」を選択して「実行」しましょう。

単語変換マクロのウィンドウで、ファイルを選択し「実行」しましょう。

すると、

のように、変換終了のメッセージボックスが表示されます。

そして、

のような文書が、

のように単語変換されたら成功です。

最後に

これまで4回に渡って、今までマクロを使ったことがない人を対象に、ワードマクロ初心者講座を行ってきましたが、いかがだったでしょうか?

この講座で使った方法を使えば、今まで手作業で繰り返し行っていたような作業を、自動でおこない、業務の効率アップができるんじゃないかと思います。

特に、別ワードファイルを処理する方法、キー操作を保存してそれを改良してマクロに組み込む方法など、そのまま使える部分は、どんどん使って応用してほしいと思います。

とはいえ、説明が不親切なところや、足りないところなどあると思います。そんなときは円料なく質問してくださいね。

ワードマクロ初心者講座:

業務効率化したい人向けのワードマクロ初心者講座(ファイル選択フォーム, キー操作保存, 単語置換, 連想配列, テーブル情報読み込み)

第1回:ワードマクロでファイル選択フォームをつくろう(フォーム, ファイルダイアログの使い方)

第2回:添字に文字列を使える連想配列で対になった情報を管理しよう

第3回:キー操作の保存からマクロを作成し単語の置換処理を作ろう

第4回(最終回):ワードマクロでテーブル(表)に書いた単語変換マクロの設定を読み取ろう

この記事が気に入ったら
いいね ! しよう

コメント