「ワードvba スタイル取得」
「word vba スタイル名取得」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが、時折あることに気づきました。
Wordのスタイルやスタイル名を取得するVBA(Visual Basic for Applications)のコードを探している方による検索です。
カーソル位置のスタイル名を取得するサンプルマクロ
これらの検索キーワードだけでは具体的に何がしたかったのかがわかりませんので、参考になるかもしれないシンプルなマクロをご紹介しておきます。
MsgBox Selection.Style.NameLocal
End Sub
上記のようなマクロで、カーソルのある位置のスタイル名がメッセージボックスに表示されます。
標準スタイルにカーソルがあれば「標準」見出し1スタイルにカーソルがあれば「見出し1」とメッセージボックスに表示されます。
サンプルマクロの解説
オブジェクトブラウザーで、[完全に一致する単語だけを検索]する設定にして、Wordライブラリに限定して「style」を検索すると、以下のような結果となります。
Styleオブジェクトが存在していること、その他のオブジェクトにStyleプロパティが存在していることがわかります。
「ワードvba スタイル取得」「word vba スタイル名取得」という検索をした方は、おそらく段落スタイル名・文字スタイル名を取得したかったのでしょうから、、
LineFormatオブジェクトのStyleプロパティが返すMsoLineStyle
ShadowFormatオブジェクトのStyleプロパティが返すMsoShadowStyle
以外の、いずれかのスタイルやスタイル名を取得したかったのではないかと推測しています。
オブジェクトブラウザーで確認するとわかるとおり、NameLocalプロパティはStyleオブジェクトのデフォルトプロパティですから、
NameLocalを省略した、
MsgBox Selection.Style
というコードでも、スタイル名をメッセージボックスに表示させられますが、可読性を考えると上記のマクロのとおり、
MsgBox Selection.Style.NameLocal
としておくほうがいいでしょう。
Home » ワードマクロ・Word VBAの使い方 » Selection » カーソル位置のスタイル名を取得するWordマクロ
TrackBack:0
- TrackBack URL