忍者ブログ

選択行の右側を削除するword マクロ

2023年06月30日

テキストエディタでできて、Wordでできないこと。

選択箇所以降の段落の文字を消せない!
(wordは必ず右端で折り返すので段落と言うけど、テキストデータの行と同じ)

Wordだと書式があるから余計に必要性を感じる。けどできない。作ることにした。





選択した文字の段落をコピーする際に、複数行に対応するために選択範囲を拡張する方法を使った。
今回はその応用。段落の最後の文字は改行なので、1文字手前まで選択して削除するだけ。

最初に作ったのが以下のソース。
複数の段落に渡って選択してなければ目的の動作は達成される。


Sub ◆以降の段落を削除()
    Selection.End = Selection.End + Selection.Paragraphs(1).Range.End - Selection.Range.End - 1 '
選択範囲を変更
    Selection.Delete
End Sub



複数の段落を選択してると、選択箇所の始点から1つ目の段落の最後までを削除する挙動になってるので修正。

掲載にあたって調べたら、
Selection.End は Selection.Range.End と同じらしい。

上のソースで、Selection.End - Selection.Range.Endってあるけど値0じゃん。。。だっさー。

改良版はこちら。
値が0になるところを消して、段落の指定を1から最終段落(Selection.Paragraphs.Count)へ変更。


Sub ◆以降の段落を削除2()


  Selection.End = Selection.Paragraphs(Selection.Paragraphs.Count).Range.End - 1 '選択範囲を変更


    Selection.Delete
End Sub


複数段落選択してると、選択箇所の始点から選択箇所の終点の段落を削除する。

ショートカットキーは、ユーザー設定からCtrl + delに割り当てた。我ながらなかなか便利。


PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字