「word vba insertbreak excelから操作」
といった検索キーワードでアクセスがありました。
Word VBAのInsertBreakメソッドを、
Excel VBAから利用するには、どのようなコードを書けばいいのか探していらしたのでしょう。
WordのInsertBreakメソッドを利用するサンプルマクロ
何らかのWord文書を開いた状態で以下のExcelマクロを実行すると、Word文書上でカーソルのあった位置に改ページが挿入されます。
On Error GoTo ErrHandl
Const wdPageBreak = 7
With GetObject(Class:="Word.Application")
.Selection.InsertBreak Type:=wdPageBreak
End With
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で利用する