Home » ワードマクロ・Word VBAの使い方 » Selection » Word VBAで1つ下のセルを取得・選択する

Word VBAで1つ下のセルを取得・選択する

動作検証バージョン:64bit Windows 10 Pro + 32bit Word(バージョン2104 ビルド13929.20386 Microsoft Store)

「word vba cell下」
という検索でアクセスがありました。

何を探していらしたのか判断に迷う検索キーワードですが、1つ下のセルを選択するSubプロシージャを作ってみました。

1つ下のセルを選択するサンプル

アクティブ文書の表内にカーソルを置いて、以下のSubプロシージャを実行してみてください。

Sub 一つ下のセルを選択する()
 With Selection
  If Not .Information(wdWithInTable) Then Exit Sub

  Dim r As Long, c As Long
  With .Cells(1)
   r = .RowIndex
   c = .ColumnIndex
  End With

  .Tables(1).Cell(r + 1, c).Select

 End With
End Sub

1つ下のセルを選択するサンプルで行っている処理

Excel VBAならば、Rangeオブジェクトに用意されているOffsetプロパティを使うのですが、Word VBAの表にはそういったプロパティがありませんから、実行時に選択されているセルの行番号と列番号を取得して、それぞれ変数に格納しておいてから、

With Selection
 Dim r As Long, c As Long
 With .Cells(1)
  r = .RowIndex
  c = .ColumnIndex

TableオブジェクトのCellメソッドに指定する引数で、行番号を1加算することで、1つ下のセルを取得・選択しています。

With Selection
 .Tables(1).Cell(r + 1, c).Select

Excel VBAの場合、Range.Rowプロパティで行番号を、Range.Columnプロパティ列番号を取得できますが、Word VBAの場合はCell.RowIndexプロパティ・Cell.ColumnIndexプロパティです。

 With .Cells(1)
  r = .RowIndex
  c = .ColumnIndex

カーソルが表内にないときに実行時エラーが発生しないように、Selection.Informationプロパティを使って、表内にカーソルがなければSubプロシージャから抜ける処理を最初に入れています。

With Selection
 If Not .Information(wdWithInTable) Then Exit Sub

最終更新日時:2022-07-07 14:29

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Selection » Word VBAで1つ下のセルを取得・選択する

「Selection」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.