• 締切済み

エクセルからワードに書き出すマクロを教えてください。

仕事でエクセルデータをワードに書き出すことが必要になりました。出力先のワードは、フォーマットが固定されています。エクセルで抽出したリストから各項目を、ワードの罫線で作った表に書き出したいのです。(エクセルをワードに挿入・表の貼付けをするのではなく、データを個別に書き出していきたいのです。) 具体的なイメージは次のとおりです。   A    B  C   D    ←列 1 あああ ○○ 09/04 5,000円 2 いいい △△ 09/05 6,000円 3 ううう □□ 09/06 7,000円 ↑行 こちらの回答からエクセルからワードに書き出すことはできたのですが、ワードの表への書き出しが解決できませんでした。 どうかご教授ください。よろしくお願いいたします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 ご質問者さんは、ここは初めてではないかと思います。参考にされたコードがどんなものか分かりませんが、Wordのドキュメント上に、表が作られているという前提のコードです。Excel上の表と同じ大きさか、Word側の表が大きいことが前提です。 'Excelの標準モジュールが良いです。 Sub TransferTable()   Dim objWd As Object 'Word.Application   Dim wdDoc As Object  'Word.Document   Dim wdTable As Object 'Word.Table   Dim y As Long   Dim x As Long   Dim i As Long   Dim j As Long   Dim rng As Range   Const vbMyError As Integer = 513 'ユーザー設定エラー       Set rng = Worksheets("Sheet1").Range("A1:D3") 'Excelのデータ範囲   Const FNAME = "D:\Test.doc" 'Word のファイル名   On Error GoTo ErrHandler   Set objWd = CreateObject("Word.Application")   objWd.Visible = True   Set wdDoc = objWd.Documents.Open(FNAME)   If wdDoc.Tables.Count = 0 Then     MsgBox "表が存在しません。", vbCritical     Err.Raise vbMyError   End If   Set wdTable = wdDoc.Tables(1)      x = wdTable.Columns.Count   y = wdTable.Rows.Count   For j = 1 To x     For i = 1 To y       wdTable.Cell(i, j).Range.Text = rng.Cells(i, j).Text     Next i   Next j   wdDoc.Save ErrHandler:   If Err.Number > 0 Then     MsgBox Err.Number & " : " & Err.Description, vbInformation    End If   wdDoc.Close   objWd.Quit   Set wdTable = Nothing   Set wdDoc = Nothing   Set objWd = Nothing End Sub

noname#99913
noname#99913
回答No.1

ワードの表の各セルに、エクセルの該当するセルへのリンクを張ればいいのではないでしょうか。 (1)エクセルの該当するセルにセルカーソルを移動 (2)Ctrl+C (3)ワードの表の該当するセルにカーソルを移動 (4)形式を選択して貼り付け (5)左の「リンク貼り付け」にチェック (6)「貼り付ける形式」を「テキスト」に (7)OK

関連するQ&A