みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
Word VBA初心者向けに入力を便利にする簡単マクロの作り方をお伝えしています。
前回の記事はこちら!
Word VBAで選択範囲の最初と最後の段落を取得する方法についてお伝えしました。
段落がある程度わかってきたとなると、次にちゃんと理解すべきは「スタイル」ですね。
スタイルを理解することで、Wordの世界が一気に広がると言っても過言ではありません。
ということで、今回はWord VBAで知っておくべきスタイルのこと、またその変更をする方法についてお伝えしていきますよ!
では、行ってみましょう!
Wordのスタイルとは
まずはスタイルとは何かから簡単に説明しますね。Wordでスタイル使わないなんて、めちゃめちゃ損なので、ここでばっちり覚えちゃって下さい。
スタイル…リボンの「ホーム」でものすごい場所をとっている、この方たちのことです。
標準とか、見出し 1とか、引用文とか、いろいろと種類がありますね。
スタイルとは、フォントや文字サイズ、文字色、行間、インデント、段落罫線などの書式設定を1セットにまとめたもので、設定している書式を段落に一発で摘要できる機能です。
例えば、「見出し 1」スタイルであれば、以下のような設定になっています。スタイルを右クリック→「変更」で内容が確認できますよ。
書式の設定内容としては
- スタイル名:見出し 1
- フォント:游ゴシック Light (見出しのフォント – 日本語)
- フォントサイズ:12pt
- 強調:なし
- 斜体:なし
- 下線:なし
- 色:自動
- 配置:両端揃え
- 行間:1.0
- インデント:なし
などなど、様々な設定が含まれているわけです。
「見出し 1」スタイルを変更したい場所にカーソルを置いて、リボンで「見出し1」スタイルをクリックすると、その段落に「見出し 1」の書式が一発で摘要されるわけです。
また、文書を全部書いた後に、「やっぱ、見出し 1はこの書式にしたかったよな~」って思ったら、スタイルの書式を変更すれば、「見出し 1」のスタイルを適用していた段落は、全て変更されます。
つまり、スタイルを設定した段落は、後でまとめて書式を変更できるのです。
ほら、便利でしょ?
Styleプロパティでスタイルを設定する
スタイルは段落に適用します。
ですから、Word VBAでスタイルを設定するには、Paragraphオブジェクトに対してStyleプロパティを設定すればOKです。
Styleプロパティの設定の仕方には二つあります。
スタイル名でスタイルを指定する
スタイル名で指定する場合の書き方はこうです。
この場合、いわゆる「標準」とか「見出し 1」などをダブルクォーテーションで囲って指定するのですが、ちょっと問題があります。
「見出し 1」 は「見出し」に半角スペース入れて、半角の数字の「1」です。半角スペースを忘れてもダメですし、全角の数字の「1」でもダメです。
これ、実際つらいっすよね…。「標準」ならいいですが、数字まじりのスタイル名はつらいです。
定数でスタイルを設定する
そんなときには、定数でスタイルを設定する方法もあります。
で、定数はコチラ!…って一覧表、出したかったのですが、Wordの組み込みスタイル定数の数、103個もあるんですね…
正直そんなに使わないと思うので、デフォルトでWordのスタイルギャラリーに載っているものだけ、ピックアップしました。
定数 | スタイル名 |
---|---|
wdStyleNormal | 標準 |
wdStyleHeading1 | 見出し 1 |
wdStyleHeading2 | 見出し 2 |
wdStyleHeading3 | 見出し 3 |
wdStyleTitle | 表題 |
wdStyleSubtitle | 副題 |
wdStyleSubtleEmphasis | 斜体 |
wdStyleEmphasis | 強調斜体 |
wdStyleIntenseEmphasis | 強調斜体 2 |
wdStyleStrong | 強調太字 |
wdStyleQuote | 引用文 |
wdStyleIntenseQuote | 引用文 2 |
wdStyleSubtleReference | 参照 |
wdStyleIntenseReference | 参照 2 |
wdStyleBookTitle | 書名 |
wdStyleListParagraph | リスト段落 |
wdStyleFooter | フッター |
wdStyleHeader | ヘッダー |
他のスタイルに関しては、以下ページに掲載されていると思いますので、ご参考ください。
段落にスタイルを設定する
では、試しにWord VBAで段落のスタイル設定をやってみましょうか。
Word文書で最初の段落のこの位置にカーソルがあります。
この状態で、イミディエイトウィンドウで以下コマンドを打って Enter してみましょう。
Selection.Paragraphs.First.Style = wdStyleHeading1
すると、以下のように最初の段落に「見出し 1」スタイルが適用されるというわけです。
選択範囲に挿入した段落のスタイルを変更する
ではいよいよ、以下の文字列を挿入するマクロの問題を解決していきましょう。
Sub insertText()
Selection.InsertBefore "----- ここから -----" & vbCr
Selection.InsertAfter "----- ここまで -----" & vbCr
End Sub
選択範囲の前後に「—– ここから —–」と「—– ここまで —–」をそれぞれ挿入するマクロです。
しかし、以下のように「箇条書き」のスタイルが適用されている段落を選択した状態で実行すると…
選択範囲の前に挿入した段落も「箇条書き」スタイルになってしまうのです。
ここは、「標準」スタイルで良いので変更をしちゃいましょう。
挿入した段落のスタイルを変更する
InsertBeforeメソッド、InsertAfterメソッドは、選択範囲が挿入した範囲も含めて広がるという特性がありました。
てことは、各メソッドを実行した後のSelectionオブジェクトの範囲を考えると、以下図のような選択範囲になりますよね。
つまり、「—– ここから —–」の段落は、選択範囲で最初の段落になりますから、そのスタイルを「標準」に設定すればよいということです。
選択範囲の最初の段落を取得する
そこで選択範囲の最初の段落を取得する方法は前回お伝えした通り
または、Firstプロパティを使って
と取得することができます。
これにスタイルを設定するわけですから、つまりプロシージャを以下のように変更します。
Sub insertText()
Selection.InsertBefore "----- ここから -----" & vbCr
Selection.InsertAfter "----- ここまで -----" & vbCr
Selection.Paragraphs.First.Style = wdStyleNormal
End Sub
選択範囲を箇条書きスタイルが適用されている範囲にした上で実行してみましょう。
このように、無事に挿入した段落のスタイルが標準に変更されていますね。
まとめ
Word VBAで知っておくべきスタイルのこと、またその設定する方法についてお伝えしました。
段落、そしてスタイル…Wordの世界が一気に広がってきましたでしょ?なんか、ちゃんと理解されないまま毛嫌いされているんですよね、Word。
スタイルは段落で設定をしますから、Word VBAでスタイルを設定する場合は、ParagraphオブジェクトのStyleプロパティを変更すればよかったわけです。
さて、次回ですが、Withステートメントを使ってWord VBAをすっきり書く方法についてお伝えします。
どうぞお楽しみに!
連載目次:初心者向けWord VBAで文字入力をしてみよう
お仕事でよく使う文書作成ソフトWord。実は、WordでもVBAでプログラミングができるんです。本シリーズでは、初心者向けとしてWord VBAで文字入力をする方法をお伝えしていきます。- Word VBA入門の最初の一歩!マクロ作成準備の6つのステップ
- Word VBAでカーソル位置に文字を入力するとっても簡単なプログラム
- Word VBA初心者がまず押さえておくべき段落記号の入力方法
- Word VBAで選択範囲の前後に文字列で挿入するマクロを作る方法
- Word VBAで作成したマクロをショートカットキーに登録する方法
- Word VBAを使うなら知っておくべき「段落」の話とその操作方法
- Word VBAで選択範囲の最初の段落&最後の段落を取得する方法
- Word VBA初心者にちゃんと理解して欲しいスタイルとその設定をする方法
- Word VBAでWithステートメントを使って同一オブジェクトの表記をスッキリ書く方法
- Word VBAでフォームを表示&コマンドボタンでマクロを実行する方法
- Word VBAでフォームをEscキーで閉じるようにするテクニック