文書で使用されている文字の大きさを表示するマクロです。
▼作成経緯
他の方がつくった文書って、その人のクセがありますよね。
ちなみに、私が作る文書もかなりクセがあります。
実害がない部分だと思うのですが、ヘッダーに案件番号を埋め込んであったり
文書ごとに変数を設定して、記憶させていたり。
これはマニアックな使い方ですが、機会があれば紹介します。
で、もっとわかりやすいところで、文字のサイズの使い方です。
ある翻訳者は、「下付き文字」を表示するために、文字サイズを小さくしていました。
具体的には、
全体の標準的な文字の大きさ 12ポイント
下付きに表示させたい文字の大きさ 8ポイント
です。
上記の8ポイントを使った表示と、下付き文字を使った表示の比較はこんな感じ。
たしかに、8ポイントを使った表示(上記①)でも、わからないこともない。
本人曰く、「文字の下端部分がそろっていて美しい」とのこと。
「なるほど!」という考え方です。こういう工夫いいですね。
でも、他の人と文書を共有して使い回す場合には、あまりうれしくないです。。。
だって、このことを知らずに編集をしたりするとトラブルの原因になりえます。
たとえば、文字のサイズを10.5ポイントに変更するために、
全選択をして文字サイズを変更することもあるかも。
そうしたら、12ポイントと8ポイントで表示していた化学式が
すべて10.5ポイントになってしまい、下付き文字がなくなります。
というわけで、現在使われている文字サイズがいくつなのかを表示する
マクロを作ってみました。
▼作用
文書中の文字サイズを1~100まで0.5ポイントごとに有無を確認します。
最終的に、使われている文字のサイズをメッセージボックスで表示します。
▼プログラムの工夫
20行から140行で、For Nextの繰り返し処理をします。
このときのstepを0.5としました。
文字の大きさをしめすmySizeという変数に入れる値を
1~100まで変更して繰り返します。
そのときに1、1.5、2、2.5 ・・・・ 99.5、100 と
段階をおうようにしました。
stepには、マイナスの値も入れられます。
たとえば、100、99.5 ・・・・ 1.5、1と逆にすることも
できます。
その場合には、20行のところを
For mySize = 100 To 1 Step -0.5
と表記します。
▼登録方法
以下のページをご覧ください。
○ ワードマクロの作成(ver.95~2003)
○ ワードマクロの作成(ver.2007)
○ マクロにショートカットを割り当てる
▼プログラム
Sub 使用中の文字サイズ検出()
Dim myRange As Range
Dim mySize As Single
Dim FontSize As String
10 Set myRange = ActiveDocument.Range(0, 0)
20 For mySize = 1 To 100 Step 0.5
30 myRange.SetRange Start:=0, End:=0
40 With myRange.Find
50 .Text = ""
60 .Forward = True
70 .Font.Size = mySize
80 .Wrap = wdFindStop
90 .Execute
100 If .Found = True Then
110 FontSize = FontSize & "、" & mySize
120 End If
130 End With
140 Next
150 MsgBox "使用中の文字サイズは" & FontSize & "です。"
160 Set myRange = Nothing
End Sub