Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでWordの選択範囲を削除する

Excel VBAでWordの選択範囲を削除する

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

「excel vba word選択範囲を削除する」
という検索でアクセスがありました。

Excel VBAを使って、Word文書の選択範囲を削除するにはどのようなコードを書けばいいのかを調べていた方による検索です。

Wordの選択範囲を削除するサンプルマクロ

Word文書で文字列を選択した状態で、以下のlマクロを実行してください。

Sub Wordの選択範囲を削除する()
On Error GoTo ErrHandl

 With GetObject(Class:="Word.Application")
  If .Selection.Start = .Selection.End Then
   MsgBox "Word文書で削除したい範囲を選択しておいてから実行してください。"
  Else
   .Selection.Delete
  End If
 End With

Exit Sub
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の選択範囲を削除する

「Office連携」の記事一覧

検索


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

.