Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » WordのInsertBreakをExcel VBAで利用する

WordのInsertBreakをExcel VBAで利用する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel & Word(バージョン2205 ビルド15225.20204 Microsoft Store)

「word vba insertbreak excelから操作」
といった検索キーワードでアクセスがありました。

Word VBAのInsertBreakメソッドを、

Excel VBAから利用するには、どのようなコードを書けばいいのか探していらしたのでしょう。

WordのInsertBreakメソッドを利用するサンプルマクロ

何らかのWord文書を開いた状態で以下のExcelマクロを実行すると、Word文書上でカーソルのあった位置に改ページが挿入されます。

Sub WordのInsertBreakメソッドを利用する()
On Error GoTo ErrHandl
 Const wdPageBreak = 7

 With GetObject(Class:="Word.Application")
  .Selection.InsertBreak Type:=wdPageBreak
 End With

Exit Sub
ErrHandl:
 Select Case Err.Number
  Case 429
   MsgBox "Wordが起動していないようです。"
  Case 4248
   MsgBox "Wordファイルが開かれていないようです。"
  Case Else
   MsgBox Err.Description & vbCrLf & Err.Number
 End Select
 Err.Clear
End Sub

サンプルマクロで行っている処理

VBAのGetObject関数で、

With GetObject(Class:="Word.Application")

起動済みの、Word.Applicationオブジェクトへの参照を取得した後は、

実質的にWord VBAです。

WordのApplication.Selectionプロパティを使って


With GetObject(Class:="Word.Application")
 .Selection.InsertBreak Type:=wdPageBreak

WordのSelectionオブジェクトを取得して、

SelectionオブジェクトのInsertBreakメソッドの引数TypeにwdPagePreakを指定しています。

 .Selection.InsertBreak Type:=wdPageBreak

本当のWord VBAであれば、いきなり

 Selection.InsertBreak Type:=wdPageBreak

といったコードを実行できますが、ここではWord.Applicationの参照設定が行われていない場合でも動くように、WordのWdBreakType.wdPageBrekに定義されている値を、

同じ名前の定数として事前に定義しています。

 Const wdPageBreak = 7

InsertBreakで改行を挿入

上記マクロの

 Const wdPageBreak = 7

 With GetObject(Class:="Word.Application")
  .Selection.InsertBreak Type:=wdPageBreak

の部分を、

 Const wdLineBreak = 6

 With GetObject(Class:="Word.Application")
  .Selection.InsertBreak Type:=wdLineBreak

としてやれば、Word文書のカーソル位置に改行が挿入されます。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » WordのInsertBreakをExcel VBAで利用する

「Office連携」の記事一覧

検索


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

.