「マクロ テキストボックスのフォント変更」
といった検索キーワードでアクセスがありました。
テキストボックスのフォント種別を変更するサンプルマクロ
新規ワークシートにテキストボックスを1つ挿入し、何らかの文字列を入力しておいてから、以下のExcelマクロを実行してください。
Dim shp As Shape
Set shp = ActiveSheet.Shapes(1)
Dim fon2 As Font2
Set fon2 = shp.TextFrame2.TextRange.Font
fon2.Name = "Arial"
fon2.NameFarEast = "BIZ UDゴシック"
End Sub
半角英数字などのASCII文字のフォントが「Arial」に、全角文字や半角カタカナのフォントが「BIZ UDゴシック」に変更されます。
サンプルマクロで行っている処理
テキストボックスを表すShapeオブジェクトを取得して、
Dim shp As Shape Set shp = ActiveSheet.Shapes(1)
テキストボックスのフォントを表すFont2オブジェクトを取得してから、
Dim fon2 As Font2 Set fon2 = shp.TextFrame2.TextRange.Font
Font2.NameプロパティとFont2.NameFarEastプロパティを使って、ASCII文字のフォントと日本語文字のフォントを変更しています。
fon2.Name = "Arial" fon2.NameFarEast = "BIZ UDゴシック"
TextFrame2.TextRange.Fontの戻り値はFont2
拙著『理解するExcel VBA/図形操作の基本』の「chapter 6. TextFrame2を経由した文字列操作」でも解説しているとおり、TextFrame2.TextRangeプロパティの戻り値はTextRange2オブジェクトで、TextRange2.Fontプロパティの戻り値はFont2オブジェクトです。
Dim fon2 As Font2 Set fon2 = shp.TextFrame2.TextRange.Font
プロパティ名と、戻り値のオブジェクト名が微妙に異なるので注意が必要です。
日本語フォントの設定にはFont2.NameFarEast
Font2.Nameプロパティで取得/設定できるのは、ASCII文字です。
日本語フォントを取得/設定するにはFont2.NameFarEastプロパティを使う必要があります。
fon2.Name = "Arial" fon2.NameFarEast = "BIZ UDゴシック"
ASCII文字しか使っていないテキストボックスであれば、Font2.NameFarEastプロパティを使った設定処理は不要です。
- Newer:VBAで画面に表示されている左上のセルを取得する
- Older:VBAを使って選択範囲内で中央を設定する
Home » エクセルマクロ・Excel VBAの使い方 » 図形内文字列 » Excel VBAでテキストボックスのフォントを変更する