Wordを起動しExcelの表を貼付る
                                                         玄関へお回り下さい。
VBからWordを起動しExcelの表を貼付印刷する    (091)
動作確認:WindowsXP(SP2) VB6.0(SP6)/Excel2000/2002/2007/Word2000/2002/2007
    
Option Explicit 
Private Sub Command1_Click()
'★プロジェクト→参照設定でMicrosoft Excel *.* ObjectLibrary 及び
' Microsoft Word *.* Object Library にチェックを入れておいて下さい。
'テスト用ファイル(xlTestFile 等)は各自準備して下さい。
'==================================================================
'Excel & Word の起動処理
  '基本的な設定は[VBからエクセルを操作する]等を参照して下さい。
  Dim xlApp  As Excel.Application
  Dim xlBook  As Excel.Workbook
  Dim xlSheet As Excel.Worksheet
  Set xlApp = CreateObject("Excel.Application")
  Set xlBook = xlApp.Workbooks.Open(xlTestFile) 'オープンするファイル名
  Set xlSheet = xlBook.Worksheets(2) 'Sheet2 を使用

  'Word の起動処理
  Dim wdApp As Word.Application
  Dim wdDoc As Word.Document '転載禁止
  Set wdApp = CreateObject("Word.Application")
  '新しい文書を開く
  Set wdDoc = wdApp.Documents.Add
  '既存のファイルを開く場合
  'Set wdDoc = wdApp.Documents.Open(myPath & "Test.doc") '転載禁止
'==================================================================
'Excel の表をクリップボードにコピー
  'エクセルの指定範囲をコピー
  xlSheet.Range("A1:F6").Copy
  DoEvents
'==================================================================
'Excelの終了処理
  xlApp.DisplayAlerts = False
  'オブジェクトを解放します
  Set xlSheet = Nothing
  xlBook.Close      'Book を閉じる
  Set xlBook = Nothing
  xlApp.Quit       'Quit メソッドを使って Excel を終了します。
  Set xlApp = Nothing
'==================================================================
'Word の操作部分
  Dim i   As Integer
  Dim Lines As Integer
  'Wordを表示
  wdApp.Visible = True
  wdDoc.Activate

  '文書中の段落数を取得
  Lines = wdDoc.Paragraphs.Count
  With wdDoc.ActiveWindow.Selection
   '段落がなければ段落を設定
   If Lines < 4 Then
     For i = 1 To 4 - Lines
      .TypeParagraph
     Next i
   End If
   '選択範囲を文書の 4 行目に移動します。
   .GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=4
   '貼り付け
   .Paste '転載禁止
  End With
  '印刷プレビューを表示
  'wdDoc.PrintPreview
  'While wdApp.ActiveWindow.View = wdPrintPreview
  '  DoEvents
  'Wend

  '文書を印刷 印刷処理が終了するまで待機
  wdDoc.PrintOut Background:=False '転載禁止
'==================================================================
'Word の終了処理転載禁止
  '保存しないで終了
  wdApp.Quit SaveChanges:=wdDoNotSaveChanges
  'オブジェクトを解放します。
  Set wdDoc = Nothing '転載禁止
  Set wdApp = Nothing '転載禁止
End Sub
ここにUPしているサンプル以外で解らない場合、まず,Word上でマクロを取って見て下さい。
そのマクロを参考にコードを書いて見ると結構それで解決する場合があります。
それでも問題が解決されない場合や解らない場合は、掲示板の方に質問して見て下さい。

'転載禁止

2003/01/24
2006/12/27


VBレスキュー(花ちゃん)
Visual Basic6.0  VB6.0