「textrange textfont excel vba」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。
Excel VBAでTextRangeを経由してフォントを操作するコードについて調べていた方による検索です。
TextRange経由でFont2を操作するサンプルマクロ
何らかの文字列の入力されている図形が1つだけ存在するワークシートがアクティブな状態で、以下のExcelマクロを実行してください。
Dim fon2 As Office.Font2
Set fon2 = ActiveSheet.Shapes(1).TextFrame2.TextRange.Font
fon2.Size = fon2.Size * 1.2
End Sub
実行するたびにフォントサイズが20%ずつ拡大していきます。
サンプルマクロで行っている処理について
知ってしまえば、コードとしてはそれほど難しくはないでしょうか。
ただし、「ActiveSheet.Shapes(1).TextFrame2.TextRange.Font」で取得しているオブジェクトは、プロパティ名とオブジェクト名が微妙に異なるので、最初は混乱する方もいらっしゃると思います。
オブジェクトブラウザーで対象をExcelライブラリに限定して「TextRange」を検索するとわかるとおり、Excel VBAの場合TextFrame2オブジェクトにのみTextRangeプロパティが存在します。
そしてTextFrame2.TextRangeプロパティの戻り値はTextRange2オブジェクトです。
拙著『理解するExcel VBA/図形操作の基本 』の[chapter 6. TextFrame2を経由した文字列操作]で解説しているとおりです。
更にTextRange2.Fontプロパティで取得できるのは、
OfficeライブラリのFont2オブジェクトです。
そのため上記のマクロでは
Dim fon2 As Office.Font2
と宣言しています。
- Newer:巨大になったCanvaのUIを元に戻す方法
- Older:段落罫線の設定されている段落を選択するWordマクロ
Home » エクセルマクロ・Excel VBAの使い方 » 図形内文字列 » Excel VBAでTextRange経由でフォントを取得/操作する