Home » エクセルマクロ・Excel VBAの使い方 » 図形内文字列 » Excel VBAでテキストボックスのフォントを変更する

Excel VBAでテキストボックスのフォントを変更する

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2407(ビルド17830.20016クイック実行)ベータチャネル

「マクロ テキストボックスのフォント変更」
といった検索キーワードでアクセスがありました。

テキストボックスのフォント種別を変更するサンプルマクロ

新規ワークシートにテキストボックスを1つ挿入し、何らかの文字列を入力しておいてから、以下のExcelマクロを実行してください。

Sub Shapeのフォントを変更する()
 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プロパティを使った設定処理は不要です。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 図形内文字列 » Excel VBAでテキストボックスのフォントを変更する

「図形内文字列」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.