none
Word VBAで、「Century」フォントで「●」を入力したい RRS feed

  • 質問

  • PC環境:Windows7、Word2010

    Word VBAで、「Century」フォントで「●」(Unicodeの25CF)を入力したいと思い、以下のコードを書きましたが、フォントが「Century」にならず、「MS明朝」のままです。

    Selection.TypeText "●"
    Selection.MoveStart wdCharacter, -1
    Selection.Font.Name = "Century"

    言語を「英語」に変更しなければならないのかと思い、

    Selection.TypeText "●"
    Selection.MoveStart wdCharacter, -1
    Selection.LanguageID = wdEnglishUS
    Selection.Font.Name = "Century"

    としてみましたが、言語が「英語」に変わりません。

     どのようにすれば、「Century」フォントで「●」を入力することができるのでしょうか?

    2015年4月1日 1:50

すべての返信

  • こんにちは。

    Word 2010(日本語版)環境で試してみましたが、たしかに「Century」にはなりませんでした。
    ただ、フォントコンボボックスからはCenturyに変更できましたので、同じ操作を行うコードを書いてみました。

    Public Sub Sample()
      Dim r As Word.Range
      
      Set r = Selection.Range
      r.Text = ChrW(&H25CF)
      r.Select
      With Application.CommandBars.FindControl(ID:=1728)
        If .Enabled = True Then .Text = "Century" 'フォント(ComboBox)を操作
      End With
      Selection.Collapse wdCollapseEnd
    End Sub

    2015年4月1日 4:32
  • こんにちは。

    確かに謎な動きですよね。

    いくつか検証してみましたが、

    • 同じ25CF入力でもメイリオでは設定できました。、
    • アルファベットであればCenturyに設定できました。
    • ツールバーから一度Centuryに変更した後であればどのフォントになっていてもVBAからフォント変更も反映されます。

    推測するにTypeText時に自動で設定されるフォントに何かあるのでしょうか…。

    2015年4月1日 5:23
    モデレータ
  • きぬあささん

     いつもお世話になります。 

     なるほど。コンボボックスを直接操作すればよいのですね。「●」がCenturyで入力できることを確認しました。

     ひとつ質問なのですが、

     If .Enabled = True Then

     のように、Enabledかどうかを確認しているのはどのような理由からなのでしょうか?Enabled=Falseという状態があり得るのなら、それはどのような状態なのでしょうか。(ID:1728のコントロールが見つからないという状態でしょうか?)

     よろしくお願いいたします。
    2015年4月1日 9:29
  • こんにちは。

    > Enabledかどうかを確認しているのはどのような理由からなのでしょうか?Enabled=Falseという状態があり得るのなら、それはどのような状態なのでしょうか。

    例えば保護ビュー(保護されたビュー)で開かれているとき等、編集ができないような状態になっているときEnabledはFalseになっています。

    このあたりはOn Error Resume Nextを入れるなりしてエラーハンドリングしても良いかと思います。
    2015年4月2日 1:56
  • 返信が遅くなりまして、申し訳ありません。

    > 例えば保護ビュー(保護されたビュー)で開かれているとき等、編集ができないような状態になっているときEnabledはFalseになっています。

    編集不可のときはFalseになり、フォントを変更しようとしてもエラーが発生するのですね。(編集を制限しているときも同様でした)

    ありがとうございました。

    2015年4月5日 0:28