衝撃の実行結果(Word)

衝撃の実行結果

最近、WordのVBAでのルビ操作にハマっている。

[Range].PhoneticGuideメソッドでルビを振るのだが、あまり細かい調整ができず、さりとてルビを振った後Field.Code.Textプロパティの値をVBAで書き換えると、

ドキュメントを開きなおしたときにフォント名情報が死ぬ

という結構悲惨なことが起こる。【参考】

仕方なく、上記リンクでも紹介したように、

一旦[Range].PhoneticGuideメソッドでルビを振った後、フィールドコードを表示させて置換する

というしちめんどくさいことをすることになった。

その中で、一つ素朴な疑問が湧いたのである。

素朴な疑問

ルビのフォントの種類を変えるメソッドを作ろうとしたとき、ふと

これ、存在しないフォント名を指定したらどないなるんやろ?

と思ったのだ。

で、やってみた。

f:id:akashi_keirin:20200125205424j:plain

このように、ドキュメント(笑)の「わ」の部分(MS 明朝)を選択した状態で、次のコードを実行するのである。

リスト1
Private Sub testInvalidFontName()
  Selection.Font.Name = "ち~んw"
End Sub

見ての通り、選択部分のフォント名に「ち~んw」というふざけた名前を指定してみるのである。

結果、どうなるか。

f:id:akashi_keirin:20200125205427j:plain

なんと、こうなるのである。

エラーが出るわけではないのである。

おわりに

これは困ったことではなかろうか。

おかしなフォント名が引数で指定されても防ぎようがないではないか。

……というわけで、当面、〈ルビのフォント名を指定するメソッド〉については、使用できるフォントを制限する方向で実装することにします。

しっかし、「フォント名:ち~んw」ってなんやねんな。