選択行の右側を削除する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