• ベストアンサー

Word VBA 選択範囲のみ

教えてください Windows10 Word2016です WordのVBAで例えば、 --------------------------- 選択範囲のみ 検索置換 ----------- 選択範囲のみ 空白行削除 ----------- 選択範囲のみ 段組を変更 ---などなど-------------------- この「選択範囲のみ」の記述はどう書けば良いのでしょうか 「マクロの記録」でいろんな事書いてますが、「選択範囲のみ」の書き方がわかりません 検索置換、空白行削除、段組を変更  それぞれに書き方が違うのでしょうか お願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

ワードVBAで一番悩ませるのが、この点です。 (どういうコードで、対象を掴めばよいか、ということ。) 小生も勉強至らずで、いまだに十分わからず、手探りです。 ・rangeで捉えられるもの、だと思います。 ・RangeにはStartとEndが捉えられる、また指定できる。 ・その単位たるや文字(Characters)、段落(Paragraphs)、セクション(Sections)などあります。これらはオブジェクトです。 ・「段組」になると、ActiveDocument.PageSetup.TextColumnsですが他と様相が違うようです。 しかし日本人がよく発想する、「行」や「ページ」は、調べる(指定する)のがむつかしく難儀します。 === 質問の「選択範囲のみ」は、人間が(マウスやキーで)範囲を選択する(している)という前提なら、「Selection.」でしょう. これなら、範囲を選択しておいて、あとの操作(検索や空白行の削除)をして、マクロの記録を見れば、Selection.が最初に出てきて、判るでしょう。 この部分を他の表現で(コードで数量的な指定で)置き換えるとなると途端にむつかしくなる。 ーーー 「空白行を削除する」は、WEBに記事があります。 範囲を選択しておいて(これを忘れない等に) Sub DeleteWhiteSpace() With Selection .Text = Replace(.Text, "?@", "") .Text = Replace(.Text, " ", "") .Text = Replace(.Text, vbTab, "") .Text = Replace(.Text, vbCr, "") .Text = Replace(.Text, vbVerticalTab, "") End With End Sub

taabou
質問者

お礼

ありがとうございました むつかしいそうだけど、勉強します

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • s-uzen
  • ベストアンサー率65% (2051/3119)
回答No.3

通常は Selection オブジェクトを使用して、メソッド、プロパティで選択範囲指定、行いたい作業や値の取得、挿入、削除などを行います。 Office VBA リファレンス https://docs.microsoft.com/ja-jp/office/vba/api/overview/ Selection オブジェクト (Word) https://docs.microsoft.com/ja-jp/office/vba/api/word.selection

taabou
質問者

お礼

ありがとうございました 勉強します

すると、全ての回答が全文表示されます。
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

Selection でしょう。

taabou
質問者

お礼

ありがとうございました 勉強します

すると、全ての回答が全文表示されます。

関連するQ&A