• ベストアンサー

WORD VBA 表の複数行選択を教えてください

検索をしてみたのですが、うまく見つけられません。 ご存知の方がいらっしゃいましたら教えてください。 ActiveDocument.Tables(1).Rows(1).Select これですと文書上1つ目の表の1行目が選択されますが、 たとえば1~3行目を選択したい場合はどうすればいいのでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.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 もどうですか。

sugar_donut
質問者

お礼

レスありがとうございました。 マクロの自動記録で、私も似たようなコードは得られていたのですが、 普通の操作では行/列選択は簡単にできますので、 まさかこの冗長なコードを使わなければダメだとは 想像もしていませんでした。 "Excelのようにはいかない"という(Wordなんですから当然ですよね)、 考えてみれば一番欲しかった答えもいただけたように思います。 ありがとうございました。

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

その他の回答 (1)

  • AlexSuns
  • ベストアンサー率67% (78/115)
回答No.1

実験してみました もっとスマートな方法があるのかな?   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

sugar_donut
質問者

お礼

レスありがとうございました。 教えていただいたコードを元に、私も試してみました。 残念ながら、セルに文字が入ると結果が異なるので 今回の私のケースには当てはまらなかったのですが、 SetRangeというメソッドも知らなければ、 使い方もわからなかったので、とてもいい勉強になりました。 これって作りたての表に対しては最強ですね。 見た目もとてもスッキリしていますし・・・。 ありがとうございました。

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

関連するQ&A

  • エクセル VBAで複数行の選択

    エクセル2002使用です。 VBAで変数を使って複数行の選択で、6行目から9行目までを選択したいのです。 sub macro2() Dim rw As Integer rw=8 Rows("rw - 2:rw + 1").Select end sub だとエラーになります。 Rows("6:9").Select のようにしたいのですがどこが悪いのでしょうか? よろしくお願いします。

  • excel vba 複数行が選択できない。

    おはようございます。よろしければ教えてください。 excel2000を使用しています。 vbaで2行目と4行目と選択したいのですが、以下のステートメントだと24行目が選択されてしまいます。 Rows("2,4").Select 2行目と4行目を選択するためには、どこを修正すればよいのかわかりませんのでご教授をお願いします。

  • Word のVBAについて初心者なのですが、質問があります。

    Word のVBAについて初心者なのですが、質問があります。 ワード文書内の表について、カーソルのある位置の行番号や列番号を取得する方法は Informationを使用して取得することができるのはわかったのですが、 文書内にある、複数の表について、行番号や列番号のように、 カーソル位置の表番号って取得することができるのでしょうか? 文書内の複数の表の総数をActiveDocument.Tables.Countで数えることができるらしい というのはネットで調べてわかったのですが、現在選択されている(カーソル位置)表が 文章内の何番目の表なのかというのができるのかどうか・・・・。 きっとInformationのように一つのコードではなくて、いろいろ組み合わせて 数えるのではないかと推測しているのですが・・・・。 すみません、誰かわかる方がいらっしゃいましたら教えてください。

  • EXCEL2003 VBA 行選択について 

    初心者です。 10行目から、20行目まで選択するには、    Rows("10:20").Select ですが、 10行目から、i行目を選択するのに   Rows("10:i").Select とすると(iは、セルに入力した任意の値(≧11)で定義します)、エラーが出ます。 任意の複数行を選択する方法をご教授下さい。 なお、この選択した複数行に対し、行削除や行挿入をするつもりです。

  • エクセル VBA の行選択

    エクセルVBAで行を選択する場合 Rows(1,1).select Range(Cells(2,2),Cells(5, 5)).EntireRow.Select の方法があると知りました。 この数値の部分に変数を入れるとエラーがでてしまいました。 どうすれば変数で行を選択することができるのか教えてください。 2003を使用しております。

  • Word2007(表での行選択)

    教えてください。 Word2007で表を挿入後、表全体を移動してしまうと行選択ができなくなってしまいます。 行選択:行頭より少し左へマウスポインタを移動し、右向白矢印でクリック 表を移動していない状態ですと行選択可能なのに、表を移動すると行選択できないのはなぜでしょうか ご存知の方いらっしゃったらお教え下さい。 よろしくお願いいたします。

  • Wordの表の行選択ができない

    表の行選択を、表の左側でクリックし行全体を選択しますが、選択できない場合があります。その原因と対策を教えてください。

  • エクセル vbaのなぜこうなるのか?

    こんばんは。 単純な事かもしれませんが、ちょっと疑問に思ったので質問させていただきました(Excel2000使用)。 ・一つ目 2行目を選択する場合 ⇒ rows(2).select 2行目から5行目までを選択する場合 ⇒ rows("2:5").select ☆☆質問☆☆ 一つの行を選択する場合は引数を("")で囲わないのに、複数行では引数を""で囲わないといけないのか? ・2つ目 2行目から5行目までを選択する場合 ⇒ rows("2:5").select 2列目から5列目を選択する場合 ⇒ range(columns(2),columns(5)).select ☆☆質問☆☆ なぜ複数列を選択する場合、columns("2:5").selectでは実行時エラーとなるのか? 素人にも理解できるような回答をお願いいたします。

  • EXCEL VBA----カーソルがある行全体を選択する方法

    こんにちは。下記で困っています。 例えば10行目のどこか(B10、E10:G10など)が選択されていれば 10行目全体を選択する場合 i=Selection Address Rows(i).select としているのですが カーソルのある行が複数(B10:B12、E10:E15など)の場合には どのようにすれば良いでしょうか? よろしくお願いします。

  • ワードのVBAで

    お世話になります。X = ActiveDocument.Tables(1).Cell(1, 2) のコードでワードの表から値を取得するとテキストの最後に改行マーク「・」が付いてきます。テキストだけ取得する方法をお教えください。 宜しくお願い致します。