![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Visual Basic でワードの表を操作する際の方法をお伺いします。
通常は、Cellメソッドを利用して、
ActiveDocument.Tables(1).Cell(2,3)
のように、Cellメソッドに行・列を引数として与えますが、セルが結合されている場合に引数はどのように指定するのでしょうか。
会社のPCだと結合されたセルは飛ばして列数を数えているようでしたが、自分のPCだと結合されたセルも数えています。結合されている(他に併合された)セルの行・列を指定するとエラーがでます。
Wordのバージョンによっても違うのでしょうか。あるいはTableオブジェクトのプロパティか何かを指定することで、結合されたセルを数えるかどうかを指定できるのでしょうか。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
Sub test01()
On Error GoTo e1
MsgBox ActiveDocument.Tables(1).Rows.Count
For i = 1 To ActiveDocument.Tables(1).Rows.Count
For j = 1 To ActiveDocument.Tables(1).Columns.Count
MsgBox ActiveDocument.Tables(1).Cell(i, j)
Next j
Next i
Exit Sub
e1:
MsgBox i & "行" & j & "列エラー"
Resume Next
End Sub
を作って実行してみました。それから推測すると
>会社のPCだと結合されたセルは飛ばして列数を数えているようでしたが
マージ(結合)されたとき、セルの要素に、ワードが何かサインを立てるのではないでしょうか。
列数というもの(行数というものも)は結合したからといって、変わらないと思いますが。
ただし各列について全列で、上下行を結合すると、ActiveDocument.Tables(1).Rows.Count
が1つ減るようですが。
>Tableオブジェクトのプロパティか何かを指定することで・・
多分そういう考え方ではないと思います。
「表を操作する」とき、どういう点で困っているのでしょうか。
この回答への補足
ありがとうございます。
表を操作するというのは、実はWordで定型帳票を作成していて、Excelではその内容をデータベース化しています。ExcelのデータをWordの表に書き込むために、
Cell(row, column).Text = ~~~
のような処理をしています。逆にWordの表からExcelへデータを戻すことも考えています。
こうした処理の中で、Wordの定型帳票が結構複雑で、セルの結合や削除をした結果、行ごとに列数がバラバラになっているので、VBからの操作で苦労しております。
Word版のVBのマニュアルで良いモノが見あたらず、その意味でも苦労している状況です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) Excelマクロ(VBA)CELL形式とA1形式の使い分け 6 2022/08/27 23:35
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/12/26 14:27
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Excel(エクセル) エクセル VBA セルの結合 2 2022/09/07 11:48
- Excel(エクセル) エクセルVBA 任意のセルの選択時、指定のセルの値を表示 1 2023/04/21 08:13
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
ワードのマクロで段落番号(文字も含む)取得ってできますか
Word(ワード)
-
Cell内の一部を指定する方法(Word VBA)
その他(Microsoft Office)
-
Word のVBAについて初心者なのですが、質問があります。
Word(ワード)
-
-
4
word vbaでword上の表の、任意で選択した複数のセルに同じ文字列を入力したいのですが、可能で
Word(ワード)
-
5
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
6
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
7
EXCELのVBAでWORDが開いてあるかチェック
Excel(エクセル)
-
8
(実行時エラー5852)ExcelデータをWordに差し込んだ後、Wordファイルを分割するマクロ
Word(ワード)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのプルダウンで2列分の情...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
VBAでセルをクリックする回...
-
TODAY()で設定したセルの日付...
-
DataGridViewの各セル幅を自由...
-
【Excel VBA】指定行以降をクリ...
-
Excel VBAでいくつか質問があり...
-
【Excel VBA】セルの色によって...
-
ExcelVBAを使って、値...
-
VLOOKUP関数で別ファイルを指定...
-
”戻り値”が変化したときに、マ...
-
EXCEL VBA 画面のロックについて
-
VBAで自動集計(特定セルコピー...
-
指定した条件で行セルを非表示...
-
ExcelVBAの複数指定範囲の構文
-
Excel vbaで特定の文字以外が入...
-
乱数(組み合わせ)を発生させるには
-
エクセル マクロで セルの範...
-
UWSCで値のみコピーするには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
VBAの計算で@が出てしまう件
-
Excelのプルダウンで2列分の情...
-
EXCELで変数をペーストしたい
-
VBA ユーザーフォーム ボタンク...
-
VBAでセルをクリックする回...
-
Excel VBA、 別ブックの最終行...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
セル色なしの行一括削除
-
エクセルVBAでコピーして順...
-
VBAを使用した時間管理
-
”戻り値”が変化したときに、マ...
-
Sub 要具ライフ() ActiveSheet....
おすすめ情報