- ベストアンサー
WORD VBA 表の複数行選択を教えてください
検索をしてみたのですが、うまく見つけられません。 ご存知の方がいらっしゃいましたら教えてください。 ActiveDocument.Tables(1).Rows(1).Select これですと文書上1つ目の表の1行目が選択されますが、 たとえば1~3行目を選択したい場合はどうすればいいのでしょうか? よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ワードのSelectからrangeへ広げる考え方からすると マクロの記録で出る Sub test01() ActiveDocument.Tables(1).Rows(1).Select Selection.MoveDown Unit:=wdLine, Count:=2, Extend:=wdExtend Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend end Sub ワードの定めた単位(例Unit:=wdLine)で広げていく(Extend:=wdExtend)ような感じで 実現するのかなと思う。 エクセルのようにRange(Cells(・・),Cells(・・))やEntirerowはできないようです。 Sub test07() ActiveDocument.Tables(1).Cell(Row:=1, Column:=1).Select Selection.EndKey Unit:=wdRow, Extend:=True Selection.MoveDown Unit:=wdLine, Extend:=True Selection.MoveDown Unit:=wdLine, Extend:=True End Sub もどうですか。
その他の回答 (1)
- AlexSuns
- ベストアンサー率67% (78/115)
実験してみました もっとスマートな方法があるのかな? Dim myRange As Range Dim rowSelect As Integer rowSelect = 3 Set myRange = ActiveDocument.Tables(1).Range myRange.SetRange 0, (rowSelect * ActiveDocument.Tables(1).Columns.Count) + rowSelect myRange.Select
お礼
レスありがとうございました。 教えていただいたコードを元に、私も試してみました。 残念ながら、セルに文字が入ると結果が異なるので 今回の私のケースには当てはまらなかったのですが、 SetRangeというメソッドも知らなければ、 使い方もわからなかったので、とてもいい勉強になりました。 これって作りたての表に対しては最強ですね。 見た目もとてもスッキリしていますし・・・。 ありがとうございました。
お礼
レスありがとうございました。 マクロの自動記録で、私も似たようなコードは得られていたのですが、 普通の操作では行/列選択は簡単にできますので、 まさかこの冗長なコードを使わなければダメだとは 想像もしていませんでした。 "Excelのようにはいかない"という(Wordなんですから当然ですよね)、 考えてみれば一番欲しかった答えもいただけたように思います。 ありがとうございました。