「word vba 中央に配置するヘッダーの設定/取得」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスがありました。
おそらく、Excel VBAの経験がある方による検索でしょう。
Excelではヘッダーは、下図のように[左側][中央部][右側]の3箇所に分かれています。
Wordのヘッダーも同じだろうと推測して、
「word vba 中央に配置するヘッダーの設定/取得」
と検索なさったのでしょう。
まず意識していただきたいのは、WordのヘッダーはExcelのヘッダーとは異なり、[左側][中央部][右側]の3箇所に分かれてはいないということです。
ヘッダーに文字列を設定して配置を変更するサンプルマクロ
新規に作成したWord文書がアクティブな状態で、以下のWordマクロを実行してください。
Dim rng As Range
Set rng = ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range
rng.Text = "ヘッダーの文字列"
Stop
rng.ParagraphFormat.Alignment = wdAlignParagraphRight
Stop
rng.ParagraphFormat.Alignment = wdAlignParagraphCenter
End Sub
ヘッダーの左のほうに「ヘッダーの文字列」と入力が行われた状態でマクロが中断し、ショートカットキー[F5]などで実行を継続すると「ヘッダーの文字列」が右揃えになった状態で再度中断し、もう一度実行すると「ヘッダーの文字列」が中央揃えになります。
拙著『Excel VBAユーザーのためのWord VBA入門(1): Document・Range・Selectionの基本編』の、[5-1. ParagraphFormatの特徴的なプロパティ]で、段落の配置を取得/設定するParagraphFormat.Alignmentプロパティをご紹介しています。
上記マクロで使用しているのも、ParagraphFormat.Alignmentプロパティです。
ParagraphFormat.Alignmentプロパティに、WdPaaragraphAlignment列挙型に定義されている定数wdAlignParagraphRightを指定すれば、右揃えになり
rng.ParagraphFormat.Alignment = wdAlignParagraphRight
定数wdAlignParagraphCenterを指定すれば、中央揃えになります。
rng.ParagraphFormat.Alignment = wdAlignParagraphCenter
本文に文字列を設定して配置を変更するサンプルマクロ
先ほどの、ヘッダーに文字列を設定して配置を変更するマクロで操作したWord文書がアクティブな状態で、以下のマクロも実行してみてください。
Dim rng As Range
Set rng = ActiveDocument.Range
rng.Text = "本文の文字列"
Stop
rng.ParagraphFormat.Alignment = wdAlignParagraphRight
Stop
rng.ParagraphFormat.Alignment = wdAlignParagraphCenter
End Sub
ヘッダーの左のほうに「ヘッダーの文字列」と入力が行われた状態でマクロが中断し、ショートカットキー[F5]などで実行を継続すると「ヘッダーの文字列」が右揃えになった状態で再度中断し、もう一度実行すると「ヘッダーの文字列」が中央揃えになります。
本文の左のほうに「本文の文字列」と入力が行われた状態でマクロが中断し、ショートカットキー[F5]などで実行を継続すると「本文の文字列」が右揃えになった状態で再度中断し、もう一度実行すると「本文の文字列」が中央揃えになります。
先にご紹介したヘッダー文字列の配置を変更するマクロとの違いは、変数rngに設定しているRangeオブジェクトです。
ヘッダーの場合は以下のコードで取得しているのに対し、
Set rng = ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range
本文の場合は以下のコードです。
Set rng = ActiveDocument.Range
どちらも、Word VBAで最重要なオブジェクトの1つ、Rangeオブジェクトを利用しているという点では同じです。
- Newer:Excel VBAのScaleHeightやScaleWidthで拡大/縮小の基準を中央にするには
- Older:TextFrame2経由でもExcelのShape内文字列に取り消し線を引ける-Font2.Strikeプロパティ
Home » ワードマクロ・Word VBAの使い方 » ヘッダー&フッター » Word VBAでヘッダー文字列の配置を指定する-ParagraphFormat.Alignment