プロが教える店舗&オフィスのセキュリティ対策術

検索をしてみたのですが、うまく見つけられません。
ご存知の方がいらっしゃいましたら教えてください。

ActiveDocument.Tables(1).Rows(1).Select

これですと文書上1つ目の表の1行目が選択されますが、
たとえば1~3行目を選択したい場合はどうすればいいのでしょうか?

よろしくお願いいたします。

gooドクター

A 回答 (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
もどうですか。
    • good
    • 0
この回答へのお礼

レスありがとうございました。

マクロの自動記録で、私も似たようなコードは得られていたのですが、
普通の操作では行/列選択は簡単にできますので、
まさかこの冗長なコードを使わなければダメだとは
想像もしていませんでした。

"Excelのようにはいかない"という(Wordなんですから当然ですよね)、
考えてみれば一番欲しかった答えもいただけたように思います。
ありがとうございました。

お礼日時:2007/03/08 10:17

実験してみました


もっとスマートな方法があるのかな?

  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
    • good
    • 0
この回答へのお礼

レスありがとうございました。
教えていただいたコードを元に、私も試してみました。

残念ながら、セルに文字が入ると結果が異なるので
今回の私のケースには当てはまらなかったのですが、
SetRangeというメソッドも知らなければ、
使い方もわからなかったので、とてもいい勉強になりました。

これって作りたての表に対しては最強ですね。
見た目もとてもスッキリしていますし・・・。
ありがとうございました。

お礼日時:2007/03/08 10:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング