英字のみフォントを変更する

Excelはシートのフォントが統一されているため、普通に文章を書けば同じフォントで表示されます。

統一感はありますが、Wordで書いたときに自動変換されるように英字のフォントを変更したい場合はかなり面倒です。

ここでは選択範囲の全てのセルの英字部分を別のフォントに変更するマクロを紹介します。

なお、紹介するマクロでは正規表現のRegExpオブジェクトを利用していますので、次項の参照設定が必要になります。


事前設定

以下のVBAコードは事前に正規表現の参照設定をしておく必要があります。

VBAの画面でツールメニュー→参照設定のダイアログを開き、「Microsoft VBScript Regular Expressions 5.5」にチェックを付けることで正規表現のRegExpクラスが利用できるようになります。


選択セル範囲の英字のフォントを変更する関数

選択されているセル範囲の各セルに含まれる英字をImpactフォントに変更する関数です。

処理概要は以下になります。

  1. 選択セル範囲を1セルずつ処理する。
  2. セルの文字列から連続する英字部分(≒英単語)の個所を全て抽出する。(正規表現利用)
  3. 抽出した英字部分(≒英単語)がセル文字列のどこにあるのか判定し、そのフォントを変更する。

フォントは固定でImpactにしていますので適宜変更したり引数にしたりしてください。

Fontオブジェクトを取得していますので、太字や文字色などのプロパティも追加して利用できます。



使い方

1. 対象のセルを選択します。

2. 上の関数(ChangeEngFont)を実行します。

3. 英字部分のフォントが変わります。分かりやすいように範囲選択ははずしています。

Impactフォントだと目立ちますね。

ちなみに、Wordで初期設定されているArial(上のコードの35行目の”Impact”を”Arial”に書き換え)だとこうなります。