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

    選択範囲内にある特定のフォントの文字列を別のフォントに置き換えるWordマクロ

    選択範囲内で「MS ゴシック」が使われている文字列のフォントを「MS …

  2. Office アドイン

    [Office用アプリ]アプリ審査を通過するためのポイント

    前回の記事で、Seller Dashboard(販売者ダッシュボード)…

  3. Office関連

    Computer Vision APIを使って画像から文字列を取得するVBAマクロ

    前々回の記事で、Fiddlerを使ってMicrosoft Cognit…

  4. Office関連

    フッターにページ番号と総ページ数を挿入するWordマクロ

    以前書いた、フッターに「ページ番号 / 総ページ数」を挿入するWord…

  5. Office アドイン

    [Office用アプリ]開発入門の記事を書かせていただきました。

    日経ソフトウエア 2014年3月号から連載の「Office用アプリ開発…

  6. Office関連

    [Outlook VBA]最小化起動時にApplication.Startupイベントが発生しない。…

    Outlook起動時、すべてのアドインが読み込まれた後に発生するApp…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP