Office関連

FontオブジェクトのNameプロパティからフォント変更できない文字のフォントを変更するWordマクロ

Msdn フォーラムに「Word VBAで、「Century」フォントで「●」を入力したい」という質問がありました。

下記コードのようにマクロから「●」(黒丸(BLACK CIRCLE):U+25CF)を入力し、フォントを変更しようとしてもフォントが変わらない、というものです。

Public Sub Test()
  With Selection
    .TypeText ChrW(&H25CF) '黒丸(BLACK CIRCLE):U+25CF
    .MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    .Font.Name = "Century"
  End With
End Sub

Word 2010で試してみると、たしかにフォントが変わらないようです。
ただし、「フォント」コンボ ボックスを手動で変更した場合は、フォントがちゃんと変更できるようなので、マクロからコンボ ボックスを変更する、下記のようなコードを考えてみました。

Option Explicit

Public Sub Sample()
  TypeTextFont String(10, ChrW(&H25CF)), "Century"
End Sub

Public Sub TypeTextFont(ByVal Text As String, ByVal FontName As String)
  Dim r As Word.Range
  
  Set r = Selection.Range
  r.Text = Text
  r.Select
  With Application.CommandBars.FindControl(ID:=1728)
    If .Enabled = True Then .Text = FontName 'フォント(ComboBox)を操作
  End With
  Selection.Collapse wdCollapseEnd
End Sub

今回の場合は「●」でしたが、もしかしたら他にもフォントが変更できない文字があるかもしれません。
そういった場合は、上記マクロをお試しください。

「EXCEL VBA 業務自動化 仕事の効率を劇的に上げるノウハウ」レビュー前のページ

VBE用のCOMアドインをメモ帳で作ってみる。次のページ

関連記事

  1. Office関連

    GetSpellingSuggestionsメソッドで文法上の誤りの修正候補は取得できない?

    前回と前々回の記事でスペルチェック、文章校正に関するWordマクロを扱…

  2. Office関連

    既存の機能の代わりにマクロを実行する方法をまとめてみました。

    「既存の機能の代わりにマクロを実行する」の関連になりますが、Offic…

  3. Office関連

    Office文書をパスワード付きPDFに変換するVBAマクロ

    4年ほど前に書いた、下記記事のマクロがWordでも使えるか?との質問を…

  4. Office関連

    PDFファイルのフィールドを読み取り専用にするVBAマクロ

    「PDFのフィールドに値を入力した後、読み取り専用にするにはどうしたら…

  5. Office関連

    JPEG画像の回転情報を変更するVBAマクロ

    mougに「マクロでJPEG画像のExif(Orientation)を…

  6. Office関連

    Office 2013関連資料のリンク

    Office 2013関連資料のリンクをメモしておきます。・O…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP