Home » エクセルマクロ・Excel VBAの使い方 » 図形内文字列 » Excel VBAでTextRange経由でフォントを取得/操作する

Excel VBAでTextRange経由でフォントを取得/操作する

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

「textrange textfont excel vba」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。

Excel VBAでTextRangeを経由してフォントを操作するコードについて調べていた方による検索です。

TextRange経由でFont2を操作するサンプルマクロ

何らかの文字列の入力されている図形が1つだけ存在するワークシートがアクティブな状態で、以下のExcelマクロを実行してください。

Sub Font2オブジェクトを操作する()
 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

と宣言しています。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 図形内文字列 » Excel VBAでTextRange経由でフォントを取得/操作する

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

検索


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

.