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上でマクロを取って見て下さい。 そのマクロを参考にコードを書いて見ると結構それで解決する場合があります。 それでも問題が解決されない場合や解らない場合は、掲示板の方に質問して見て下さい。 |