【VBAリファレンス|実務向け】Wordで英数字の幅が揃わない?VBAでも役立つ「フォント」の基本知識

スポンサーリンク

皆さん、こんにちは。Excel VBA講師の私ですが、実務の現場ではExcelで作成したデータをWordに貼り付けたり、あるいはWordのドキュメントを整えたりする作業も頻繁に発生しますよね。

今回は、意外と見落としがちな「アルファベットの横幅が揃わない」という現象について、技術的な視点から解説します。

なぜ英数字の幅はバラバラに見えるのか?

Wordで文書を作成していると、同じアルファベットや数字なのに、文字によって横幅が異なって見えることはありませんか?これは、Wordがデフォルトで設定している「欧文フォント」の性質によるものです。

一般的に、CenturyやArialといった「欧文フォント」は、文字ごとに最適な間隔を保つ(プロポーショナルフォントといいます)設計になっています。そのため、「i」や「l」は細く、「w」や「m」は太く表示されます。これらは文章として読むには美しいのですが、表や箇条書きで「文字の開始位置を完璧に揃えたい」という場合には、かえって邪魔になってしまいます。

解決策:和文の等幅フォントを活用する

文字の横幅を物理的に揃えたい場合は、「和文フォント」として分類されている「等幅フォント」を適用するのが鉄則です。

具体的には、以下のフォントが代表的です。
・MS ゴシック
・MS 明朝

これらのフォントは、もともと日本語(かな・漢字)を同じ間隔で並べるために作られているため、英数字も強制的に「全角」と同じ扱い、あるいは固定された「半角幅」として並ぶようになります。

VBAでフォントを一括制御するヒント

実務で大量のWordドキュメントや、Excel上のセル内のフォントを統一したい場合、VBAを使うと非常に効率的です。例えば、特定の範囲のフォントを強制的に「MS ゴシック」に統一するコードは以下の通りです。

VBAによるフォント指定のサンプルコード

Sub SetFixedFont()
‘ Wordの選択範囲のフォントをMSゴシックに固定する例
Selection.Font.Name = “MS ゴシック”
Selection.Font.NameAscii = “MS ゴシック”
End Sub

ここで注目していただきたいのが、NameAsciiプロパティです。WordのVBAでは、和文と欧文のフォントを分けて指定できます。ここを明示的に「MS ゴシック」に指定することで、英数字が勝手にCenturyなどのプロポーショナルフォントに置き換わってしまうことを防ぐことができます。

まとめ

・英数字の幅を揃えたいときは「MS ゴシック」などの等幅フォントを使う。
・Wordのプロパティには「和文フォント」と「欧文フォント」の設定が個別に存在することを意識する。
・VBAで制御する際は「NameAscii」を確実に指定する。

些細なことですが、こうしたフォントの特性を理解しておくと、資料の見た目のクオリティがグッと上がります。ぜひ、実務の現場で活用してみてくださいね!

タイトルとURLをコピーしました