「word vba カーソル のある文を削除」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
一括処理だけでなく編集作業を楽にするためのマクロも
たくさんのデータを一気に処理するExcelマクロに慣れ親しんでいる方が、Wordマクロと聞くと、
「Wordでマクロを使っていったい何をするのだろう?」
と疑問に感じることが少なくありません。
私も昔はそう思っていました。
Wordの場合(一括処理をするためにマクロを利用することももちろんありますが)編集作業を少しでも楽にするために、マクロを使うことがあります。
「word vba カーソル のある文を削除」
という検索キーワードも、そんな編集作業を楽にするWordマクロ・VBA(Visual Basic for Applications)のコードを探していた方によるものでしょう。
カーソルのある文を削除するサンプルマクロ
Wordで、文書から一つの文を削除しようとした場合、マウスやキーボードで削除したい文を選択しておいてから削除するか、一文字ずつ削除することを繰り返すことが必要になります。
「word vba カーソル のある文を削除」
という検索をした方は、これをもっと楽にするために、事前に文を選択したり、[Delete]キーや[Back Space]キーを何度も押したりすることなく、カーソルの置かれている文を一発で削除するVBAのコードを探してらしたのでしょう。
そしておそらく、作業を楽にするために、カーソルの置かれている文を削除するマクロに、ショートカットキーを割り当てて使うことも考えてらしたのだろうと推測します。
Selection.Sentences(1).Delete
End Sub
上記のようなマクロで、カーソルの置かれている文を削除できます。
サンプルマクロの解説
グローバルメンバーのSelectionプロパティで、Selectionオブジェクトを取得して、
SelectionオブジェクトのSentencesプロパティで、すべての文を表すSentencesコレクションオブジェクトを取得して、
Sentencesコレクションオブジェクトの既定のメンバーであるItemメソッドの引数に「1」を指定することで、カーソルの置かれている一つ目の文を表すRangeオブジェクトを取得して、
RangeオブジェクトのDeleteメソッドで削除を行っています。
カーソルのある文を削除する前に確認を行うサンプルマクロ
削除を行う前に確認をしたいという要望が上がるかもしれません。
その場合は以下のようなマクロでしょうか。
Selection.Sentences(1).Select
If MsgBox("選択されている文を削除しますか?", vbYesNo) = vbYes Then
Selection.Delete
End If
End Sub
カーソルのある文を選択しておいて、
Selection.Sentences(1).Select
確認メッセージを表示して[はい]ボタンが押されたときに、
If MsgBox("選択されている文を削除しますか?", vbYesNo) = vbYes Then
選択されている文字列(カーソルの置かれていた文)を削除しています。
Selection.Delete
最終更新日時:2022-07-21 14:48
Home » ワードマクロ・Word VBAの使い方 » 文・センテンス » カーソルのある文・センテンスをWord VBAで削除する