Excelは計算ばかりでなく、文字情報をデータベース的に管理したい場合にも重宝します。例えばオートフィルタ機能を使えば特定の文字を含む行を絞り込めますし、検索機能を使えば特定の文字を含むセルを探し出せます。
ただし今回は、大量の文字情報が入っている表から、特定のキーワードを浮かび上がらせるワークシートを作成しました。データを絞り込むのではなく、表全体を見渡しながら特定の文字を探し出したいときに便利です。
図1が今回作成したシートです。A2セルに目立たせたいキーワードを入力してすぐ横の「実行」ボタンを押してください。するとシートの5~50行目に含まれているキーワードの文字を探して大きく、赤く、太字にします。
マクロを図2に示しました。行ごとにコメントを入れてあります。まず、検索したいキーワードを読み込みます。図1のA2セルにはあらかじめ「キーワード」という名前を付けてあるのでマクロから簡単に読み込めます。キーワードに何も入力されていない場合は実行を終了します。キーワードの文字数を調べているのは、後で文字の色などを変更するときに使うためです。
For Eachで始まる行で、表の操作対象を指定しています。「5:50」とあるのは「5~50行」の意味です。その間にあるすべてのセルに対して1個ずつ処理をします。この範囲は必要に応じて値を変更してください。
セルに含まれている文字の中にキーワードを発見したら、その部分だけ書式を変更します。InStrは、指定したキーワードがセル内の何文字目にあるかを調べる関数です。これにより見つかった位置から、キーワードの文字数分だけ、書式を設定します。
With文で複数の書式設定
今回の例では文字色とサイズと太字を設定しました。書式をまとめて設定する場合はWith文が便利です。WithとEnd Withで挟まれた範囲に書いたすべての書式が設定されます。
文字色は「ColorIndex = 3」で赤になります。この数字を4にすれば緑、5なら青になります。「Size = 15」で文字サイズが15ポイントになります。Excelは標準サイズが11ポイントですから、必要に応じて好きなサイズに設定してください。「Bold = True」は太字の設定です。ここを「Italic = True」にすれば斜体になります。太字に設定している行を残したまま、斜体の行を追加すれば太字で斜体という設定も可能です。
今回のシートはキーワード部分の設定をするだけで解除する機能はありません。お手数ですが書式を元に戻すのは手作業でお願いします。
その代わり、複数のキーワードを次々と入力して、すべてのキーワードを目立たせることが可能です。関連するキーワードを入力すればいいでしょう。図1の例では「バリアフリー」を目立たせていますが、さらにA2セルに「ユニバーサルデザイン」と入力して「実行」ボタンをクリックすると「バリアフリー」に加えて「ユニバーサルデザイン」も目立った状態になります。