Word VBA初心者にちゃんと理解して欲しいスタイルとその設定をする方法


chapter

photo credit: Anton Vakulenko Chapter One via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

Word VBA初心者向けに入力を便利にする簡単マクロの作り方をお伝えしています。

前回の記事はこちら!

Word VBAで選択範囲の最初の段落&最後の段落を取得する方法
初心者向けWord VBAを使って便利な入力ツールを作る方法をお伝えしています。 今回はWord VBAで選択範囲の中から最初の段落と最後の段落を取得して、その文字列を出力する方法をお伝えします。

Word VBAで選択範囲の最初と最後の段落を取得する方法についてお伝えしました。

段落がある程度わかってきたとなると、次にちゃんと理解すべきは「スタイル」ですね。

スタイルを理解することで、Wordの世界が一気に広がると言っても過言ではありません。

ということで、今回はWord VBAで知っておくべきスタイルのこと、またその変更をする方法についてお伝えしていきますよ!

では、行ってみましょう!

スポンサーリンク

Wordのスタイルとは

まずはスタイルとは何かから簡単に説明しますね。Wordでスタイル使わないなんて、めちゃめちゃ損なので、ここでばっちり覚えちゃって下さい。

スタイル…リボンの「ホーム」でものすごい場所をとっている、この方たちのことです。

Wordのリボンのスタイル

標準とか、見出し 1とか、引用文とか、いろいろと種類がありますね。

スタイルとは、フォントや文字サイズ、文字色、行間、インデント、段落罫線などの書式設定を1セットにまとめたもので、設定している書式を段落に一発で摘要できる機能です。

例えば、「見出し 1」スタイルであれば、以下のような設定になっています。スタイルを右クリック→「変更」で内容が確認できますよ。

Wordの見出し 1のスタイルの内容

書式の設定内容としては

  • スタイル名:見出し 1
  • フォント:游ゴシック Light (見出しのフォント – 日本語)
  • フォントサイズ:12pt
  • 強調:なし
  • 斜体:なし
  • 下線:なし
  • 色:自動
  • 配置:両端揃え
  • 行間:1.0
  • インデント:なし

などなど、様々な設定が含まれているわけです。

「見出し 1」スタイルを変更したい場所にカーソルを置いて、リボンで「見出し1」スタイルをクリックすると、その段落に「見出し 1」の書式が一発で摘要されるわけです。

また、文書を全部書いた後に、「やっぱ、見出し 1はこの書式にしたかったよな~」って思ったら、スタイルの書式を変更すれば、「見出し 1」のスタイルを適用していた段落は、全て変更されます。

つまり、スタイルを設定した段落は、後でまとめて書式を変更できるのです。

ほら、便利でしょ?

Styleプロパティでスタイルを設定する

スタイルは段落に適用します。

ですから、Word VBAでスタイルを設定するには、Paragraphオブジェクトに対してStyleプロパティを設定すればOKです。

Styleプロパティの設定の仕方には二つあります。

スタイル名でスタイルを指定する

スタイル名で指定する場合の書き方はこうです。

Paragraphオブジェクト.Style = スタイル名

この場合、いわゆる「標準」とか「見出し 1」などをダブルクォーテーションで囲って指定するのですが、ちょっと問題があります。

「見出し 1」 は「見出し」に半角スペース入れて、半角の数字の「1」です。半角スペースを忘れてもダメですし、全角の数字の「1」でもダメです。

これ、実際つらいっすよね…。「標準」ならいいですが、数字まじりのスタイル名はつらいです。

定数でスタイルを設定する

そんなときには、定数でスタイルを設定する方法もあります。

Paragraphオブジェクト.Style = 定数

で、定数はコチラ!…って一覧表、出したかったのですが、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 ヘッダー

他のスタイルに関しては、以下ページに掲載されていると思いますので、ご参考ください。

参照WdBuiltinStyle 列挙 (Word)

段落にスタイルを設定する

では、試しにWord VBAで段落のスタイル設定をやってみましょうか。

Word文書で最初の段落のこの位置にカーソルがあります。

Word文書の最初の段落にカーソル

この状態で、イミディエイトウィンドウで以下コマンドを打って Enter してみましょう。

Selection.Paragraphs.First.Style = wdStyleHeading1

すると、以下のように最初の段落に「見出し 1」スタイルが適用されるというわけです。

Word VBAでスタイルを適用した

選択範囲に挿入した段落のスタイルを変更する

ではいよいよ、以下の文字列を挿入するマクロの問題を解決していきましょう。

Sub insertText()

Selection.InsertBefore "----- ここから -----" & vbCr
Selection.InsertAfter "----- ここまで -----" & vbCr

End Sub

選択範囲の前後に「—– ここから —–」と「—– ここまで —–」をそれぞれ挿入するマクロです。

しかし、以下のように「箇条書き」のスタイルが適用されている段落を選択した状態で実行すると…

Wordで箇条書きの範囲を選択

選択範囲の前に挿入した段落も「箇条書き」スタイルになってしまうのです。

Wordで箇条書きの範囲を選択に対してマクロ実行

ここは、「標準」スタイルで良いので変更をしちゃいましょう。

挿入した段落のスタイルを変更する

InsertBeforeメソッド、InsertAfterメソッドは、選択範囲が挿入した範囲も含めて広がるという特性がありました。

てことは、各メソッドを実行した後のSelectionオブジェクトの範囲を考えると、以下図のような選択範囲になりますよね。

WordのParagraphsコレクション

つまり、「—– ここから —–」の段落は、選択範囲で最初の段落になりますから、そのスタイルを「標準」に設定すればよいということです。

選択範囲の最初の段落を取得する

そこで選択範囲の最初の段落を取得する方法は前回お伝えした通り

Paragraphsコレクション(1)

または、Firstプロパティを使って

Paragraphsコレクション.First

と取得することができます。

これにスタイルを設定するわけですから、つまりプロシージャを以下のように変更します。

Sub insertText()

Selection.InsertBefore "----- ここから -----" & vbCr
Selection.InsertAfter "----- ここまで -----" & vbCr
Selection.Paragraphs.First.Style = wdStyleNormal

End Sub

選択範囲を箇条書きスタイルが適用されている範囲にした上で実行してみましょう。

Word VBAで選択範囲のスタイルを変更

このように、無事に挿入した段落のスタイルが標準に変更されていますね。

まとめ

Word VBAで知っておくべきスタイルのこと、またその設定する方法についてお伝えしました。

段落、そしてスタイル…Wordの世界が一気に広がってきましたでしょ?なんか、ちゃんと理解されないまま毛嫌いされているんですよね、Word。

スタイルは段落で設定をしますから、Word VBAでスタイルを設定する場合は、ParagraphオブジェクトのStyleプロパティを変更すればよかったわけです。

さて、次回ですが、Withステートメントを使ってWord VBAをすっきり書く方法についてお伝えします。

Word VBAでWithステートメントを使って同一オブジェクトの表記をスッキリ書く方法
Word VBAで入力を便利するマクロの作り方を初心者向けにお伝えしています。今回は、Word VBAで同一オブジェクトの表記をまとめるWithステートメントの使い方です。これでプログラムをスッキリ書きます!

どうぞお楽しみに!

連載目次:初心者向けWord VBAで文字入力をしてみよう

お仕事でよく使う文書作成ソフトWord。実は、WordでもVBAでプログラミングができるんです。本シリーズでは、初心者向けとしてWord VBAで文字入力をする方法をお伝えしていきます。
  1. Word VBA入門の最初の一歩!マクロ作成準備の6つのステップ
  2. Word VBAでカーソル位置に文字を入力するとっても簡単なプログラム
  3. Word VBA初心者がまず押さえておくべき段落記号の入力方法
  4. Word VBAで選択範囲の前後に文字列で挿入するマクロを作る方法
  5. Word VBAで作成したマクロをショートカットキーに登録する方法
  6. Word VBAを使うなら知っておくべき「段落」の話とその操作方法
  7. Word VBAで選択範囲の最初の段落&最後の段落を取得する方法
  8. Word VBA初心者にちゃんと理解して欲しいスタイルとその設定をする方法
  9. Word VBAでWithステートメントを使って同一オブジェクトの表記をスッキリ書く方法
  10. Word VBAでフォームを表示&コマンドボタンでマクロを実行する方法
  11. Word VBAでフォームをEscキーで閉じるようにするテクニック

タイトルとURLをコピーしました