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

    Officeの新製品発売記念イベントに参加してきました。

    今月16日に開催された、Officeの新しい製品の発売記念イベント「平…

  2. Excel

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

    前回、前々回とGmail APIを扱ってきましたが、今回は前々回の記事…

  3. Office アドイン

    [Office用アプリ]コピー&ペースト用マニフェストファイル

    Office 用アプリを作るとき、過去に作ったアプリのマニフェストファ…

  4. Office関連

    VBA Word 97/98ハンドブックを購入しました。

    ブックオフにあった「VBA Word 97/98ハンドブッ…

  5. Office関連

    【2018年7月版】ソースコードを番号行付きのテーブルに変換するWordマクロ

    6年以上前、Wordに貼り付けたソースコードを番号付きのテーブルに変換…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP