「excel vba word選択範囲を削除する」
という検索でアクセスがありました。
Excel VBAを使って、Word文書の選択範囲を削除するにはどのようなコードを書けばいいのかを調べていた方による検索です。
Wordの選択範囲を削除するサンプルマクロ
Word文書で文字列を選択した状態で、以下のlマクロを実行してください。
On Error GoTo ErrHandl
With GetObject(Class:="Word.Application")
If .Selection.Start = .Selection.End Then
MsgBox "Word文書で削除したい範囲を選択しておいてから実行してください。"
Else
.Selection.Delete
End If
End With
ErrHandl:
Select Case Err.Number
Case 429
MsgBox "Wordが起動していないようです。"
Case Else
MsgBox Err.Description & vbCrLf & Err.Number
End Select
Err.Clear
End Sub
上記のマクロにはExcel VBAと呼べる箇所はありませんから、VBAを実行できる環境ならどのアプリケーションからでも実行できます。
サンプルファイルで行っている処理
VBAのGetObject関数の
引数Classに文字列「Word.Application」を指定して、
With GetObject(Class:="Word.Application")
WordライブラリのApplicationオブジェクトへの参照を取得したあとは、実質的にWord VBAです。
拙著『Excel VBAユーザーのためのWord VBA入門(1)』の「7-3. 単なるデータを返すSelectionの特徴的なプロパティ」でも解説している、Selection.StartプロパティとSelection.Endプロパティを使って、文字列範囲が選択されているかを判定して、
If .Selection.Start = .Selection.End Then
範囲が選択されていない場合にはメッセージを表示しています。
MsgBox "Word文書で削除したい範囲を選択しておいてから実行してください。"
範囲が選択されていれば、拙著の「7-5. Selectionの特徴的なメソッド」でもご紹介しているSelection.Deleteメソッドで削除を行っています。
Else .Selection.Delete
Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでWordの選択範囲を削除する