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関連

    ドラッグ&ドロップでExcelファイルをアドイン形式(xlam)に一括変換するVBScript

    複数のExcelファイルをアドイン形式(xlam)に変換する必要があっ…

  2. Office関連

    Gmail APIを使ってメール送信するVBAマクロ

    「「Gmail API」β版公開、連動アプリ開発を支援」にもあるように…

  3. アイコン一覧

    Office 2013 アイコン一覧(J)

    ・Office 2013 アイコン一覧 NUM…

  4. Office関連

    指定したフォルダ内にあるExcelファイルを一つにまとめるVBAマクロ

    複数あるファイルを一つにまとめるにはどうすれば良いか?という質問をいた…

  5. Office関連

    ガイドを追加するPowerPointマクロ

    PowerPointで図形の位置を調整するときに役立つガイド機能(ガイ…

  6. Office アドイン

    Office 用アプリの開発資料(日本語)が公開されました。

    Office 用アプリの開発資料(日本語)が公開されました。・…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

PAGE TOP