Home » ワードマクロ・Word VBAの使い方 » 文・センテンス » カーソルのある文・センテンスをWord VBAで削除する

カーソルのある文・センテンスをWord VBAで削除する

対象:Word2007, Word2010, Word2013

「word vba カーソル のある文を削除」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

一括処理だけでなく編集作業を楽にするためのマクロも

たくさんのデータを一気に処理するExcelマクロに慣れ親しんでいる方が、Wordマクロと聞くと、
「Wordでマクロを使っていったい何をするのだろう?」
と疑問に感じることが少なくありません。
私も昔はそう思っていました。

Wordの場合(一括処理をするためにマクロを利用することももちろんありますが)編集作業を少しでも楽にするために、マクロを使うことがあります。

翻訳者でMicrosoft MVP for Wordの新田順也さんがブログやセミナーで紹介してらっしゃるWordマクロには、そういったものがかなりあります。Wordを使って翻訳作業をする際に、作業を楽にしてくれるマクロです。

「word vba カーソル のある文を削除」
という検索キーワードも、そんな編集作業を楽にするWordマクロ・VBA(Visual Basic for Applications)のコードを探していた方によるものでしょう。

カーソルのある文を削除するサンプルマクロ

Wordで、文書から一つの文を削除しようとした場合、マウスやキーボードで削除したい文を選択しておいてから削除するか、一文字ずつ削除することを繰り返すことが必要になります。

「word vba カーソル のある文を削除」
という検索をした方は、これをもっと楽にするために、事前に文を選択したり、[Delete]キーや[Back Space]キーを何度も押したりすることなく、カーソルの置かれている文を一発で削除するVBAのコードを探してらしたのでしょう。

そしておそらく、作業を楽にするために、カーソルの置かれている文を削除するマクロに、ショートカットキーを割り当てて使うことも考えてらしたのだろうと推測します。

Sub カーソルのある文を削除する()
 Selection.Sentences(1).Delete
End Sub

上記のようなマクロで、カーソルの置かれている文を削除できます。

サンプルマクロの解説

グローバルメンバーのSelectionプロパティで、Selectionオブジェクトを取得して、

カーソルのある文を削除するWordマクロ

SelectionオブジェクトのSentencesプロパティで、すべての文を表すSentencesコレクションオブジェクトを取得して、

カーソルのある文を削除するWordマクロ

Sentencesコレクションオブジェクトの既定のメンバーであるItemメソッドの引数に「1」を指定することで、カーソルの置かれている一つ目の文を表すRangeオブジェクトを取得して、

カーソルのある文を削除するWordマクロ

RangeオブジェクトのDeleteメソッドで削除を行っています。

カーソルのある文を削除するWordマクロ

カーソルのある文を削除する前に確認を行うサンプルマクロ

削除を行う前に確認をしたいという要望が上がるかもしれません。

その場合は以下のようなマクロでしょうか。

Sub カーソルのある文を削除する_確認あり()
 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で削除する

「文・センテンス」の記事一覧

検索


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

.