アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBA初心者の質問です。
 Word文書に表があってそのネストした表(親表の子表)にVBAを使用してデータを挿入したい。
色々調べてみたが、見つかりませんでした。どなたがご教授をお願いします。

「VBAでWordのネストした表にデータを」の質問画像

A 回答 (4件)

最初の質問についての対応策はテーブルNoを変える事で可能なようですが、他に問題が出たのならその現象を画像添付するためこの質問を閉め切って質問の立て直しが宜しいのでは?



この質問の回答によって起きた現象であれば回答者に分析してもらうしかないかもですけど。
    • good
    • 1

Sub Sample_01()で


Application.ScreenUpdating = True
を書き忘れました

ここにコピペしてください
Next tbl
Application.ScreenUpdating = True 
End Sub
    • good
    • 1
この回答へのお礼

丁寧にソースまで書いて頂いてありがとうございます。親子表ではないことがわかりました。
しかし、この二つの表を識別するために、それぞれにタイトルを付けて、保存して、開くと、下表のタイトルが勝手に上表のタイトルに変わってしまっています。

お礼日時:2023/04/24 17:27

こんにちは


Word VBA?
Tables(1)として参考コード
親テーブルのみにテキストを書き込む場合
Sub Sample1()
Dim i As Long '行
Dim j As Long '列
With ActiveDocument.Tables(1)
If .Columns.Count < 1 Then Exit Sub
Application.ScreenUpdating = False
For i = 2 To .Rows.Count
For j = 2 To .Columns.Count
'文字挿入
.Cell(i, j).Range.Text = i & "行" & j & "列"
Next j
Next i
End With
Application.ScreenUpdating = True
End Sub

ご質問のようにTableの中にTableがある場合
Sub Sample_01()
Dim tbl As Table
Dim i As Long '行
Dim j As Long '列
For Each tbl In ActiveDocument.Tables(1).Tables
With tbl
If .Columns.Count < 1 Then Exit Sub
Application.ScreenUpdating = False
For i = 2 To .Rows.Count
For j = 2 To .Columns.Count
'文字挿入
.Cell(i, j).Range.Text = i & "行" & j & "列"
Next j
Next i
End With
Next tbl
End Sub

対象ドキュメント、対象テーブルの特定、書き込み条件、書き込み文字列
エラー対策が必要と思われます
    • good
    • 0

表は上から繋がっているのですかね?


そうなると赤線左上はCells(4,2)になるのでは?

ActiveDocument.Tables(1).Cell(4, 2).Range.Text = "知恵袋"

あとはExcelのセルに値を入れる事が可能であれば、Cells(行,列) を変える事で可能と思います。(初心者ですが多分・・・)
    • good
    • 1
この回答へのお礼

繋がっていますが、別の表として認識されているようです。
ActiveDocument.Tables(1).Cell(1, 1).Range.Text = "知恵袋"
→OK
ActiveDocument.Tables(1).Cell(4, 2).Range.Text = "知恵袋"
→エラー実行時エラー5941
ActiveDocument.Tables(2).Cell(2, 2).Range.Text = "知恵袋"
→OK
別の表であることがわかりました。
感謝します。

お礼日時:2023/04/24 17:17

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