• 締切済み

ExcelからWordの差込印刷を実行したい

WordのFAX送信表にExcelのデータ(宛先)を差込印刷で設定していて、 Excelの方では各行にチェックボックスと一つの印刷ボタンを 配置しています。 ExcelのVBAでチェックがついていたら、A列の値を1として Wordを開き印刷したいのですが、Wordの起動に時間がかかってしまいます。 Wordの方にはクエリオプションでA列=1と設定してあります。 データはExcelでなくても構わないのですが、 何かよい方法はないでしょうか? コードは以下の通りです。 If CheckBox1.Value = True Then Range("A2").Select ActiveCell.FormulaR1C1 = "1" End If Dim ワード As Object Dim ワード文書 As Object Dim フルパス As String フルパス = "C:\Fax送信表.doc" 'フルパスを作成 Set ワード = CreateObject("Word.Application") 'Wordを起動する ワード.Visible = True 'Wordを表示する Set ワード文書 = ワード.documents.Open(フルパス) 'Word文書を開く

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

>Excelの方では各行にチェックボックスと一つの印刷ボタンを 配置しています。 ●印刷ボタン--1つ--印刷(Fax送信状印刷)ゴーサインのためのボタン。---判ります。 ●チェックボックス--行数だけ、多数?--その会社・宛先にFAXするかどうかのボタンですね。折角エクセルのセルというものがありながら、またなぜチェックボタンを貼り付けるのか判らない。それは良いとして、LinkedCellと言うのが、プロパティにあり、ここをA1,A2とかに設定しておけばTrueとかをセットしてくれますが。Trueなんて言葉を嫌ったのかな。 ●ExcelVBAで2002とかでも、コントロール配列が使えないとおもうので、 If CheckBox1.Value = True Then Range("A2").Select ActiveCell.FormulaR1C1 = "1" End If を行数(社数?)個コーディングを書いているのですか。 私も何とか繰り回しに持って行こうとしたが、出来なかった。 Sub test06() If Worksheets("sheet1").CheckBox1.Value = True Then Range("A2").Select ActiveCell.FormulaR1C1 = "1" End If End Sub でないと動かなかった。 せめて If Worksheets("sheet1").CheckBox1.Value = True Then Cells(2, 1) = 1と1行になりますよ。 ●Sub test07() Dim ワード As Object Dim ワード文書 As Object Dim フルパス As String フルパス = "C:\My Documents\FAX送信状.doc" 'フルパスを作成 Set ワード = CreateObject("Word.Application") 'Wordを起動する ワード.Visible = True 'Wordを表示する Set ワード文書 = ワード.documents.Open(フルパス) 'Word文書を開く End Sub でテストしたが、ワード文書を開くところまでは、普通のスピードで直ちに(約3秒)開きましたよ。私のCPU、メモリ、ディスクは最定レベルですが。 ●このあとワードでのVBAで差しこみ印刷のコーディングが質問ですか。質問内容が良く判らない。

関連するQ&A

  • Excel VBAで呼び出したWordが文書への差し込みボタンが効かない状態で開く

    以下のExcel VBAでWordは開くのですが、新規文書への差し込みボタンが、活きていないです。参照設定は、Microsoft Word 11.0 Object Libraryを入れています。 どうしたらいいのでしょうか?困っています。 Sub Wordを開き、差し込み印刷する() Dim ワード As Object Dim ワード文書 As Object Dim フルパス As String フルパス = "D:\案内状.doc"          'フルパスを作成 Set ワード = CreateObject("Word.Application") 'Wordを起動 ワード.Visible =True 'Wordを表示 Set ワード文書 = ワード.documents.Open(フルパス) 'Word文書を開く End Sub

  • エクセルのマクロを利用したワードの開き方

    エクセルのマクロを利用したワードの開き方を教えてください。よろしくおねがいします。ちなみにコードは Option Explicit Dim 行, ドライブ, 親フォルダ, 子フォルダ, ファイル名, 拡張子, パス Dim フルパス As String Dim ワード As Object Dim ワード文書 As Object Sub 環境リストボックスでクリックされた() 行 = Worksheets("呼出").Cells(2, 1) + 1 管理表シートから値を取り出す 選択されたファイルを開く End Sub Private Sub 管理表シートから値を取り出す() ドライブ = Worksheets("管理表").Cells(行, 2) 親フォルダ = Worksheets("管理表").Cells(行, 3) 子フォルダ = Worksheets("管理表").Cells(行, 4) ファイル名 = Worksheets("管理表").Cells(行, 5) 拡張子 = Worksheets("管理表").Cells(行, 6) End Sub Private Sub 選択されたファイルを開く() ChDrive ドライブ パス = ドライブ & "\" & 親フォルダ & "\" & 子フォルダ ChDir "C:\ときめき\環境" If 拡張子 = "xls" Then Workbooks.Open Filename:=ファイル名 & ".xls", ReadOnly:=True ElseIf 拡張子 = "doc" Then フルパス = パス & "\" & ファイル名 & ".doc" 'フルパスを作成 Set ワード = CreateObject("Word.Application") 'Wordを起動する ワード.Visible = True 'Wordを表示する Set ワード文書 = ワード.documents.Open(フルパス) 'Word文書を開く End If End Sub となっています。 あと、OSはwindowsMeで ソフトはエクセル、ワード共に2000を利用しています。 よろしくおねがいします。

  • エクセルにワードを貼り付けて印刷

    エクセルの文書に、ワード文書を貼り付ける事はできたのですが、 (【挿入】-【オブジェクト】-【ファイルから】の方法です) ワード文書が何ページもある場合、1ページ目しか印刷プレビューにでてきません。 エクセルの文書もワードの文書も全部印刷するにはどうしたらよいでしょうか? よろしくお願いしますm(__)m

  • AccessからWordの差し込み印刷文書を印刷するVBAについて教えてください

    Access初心者です。 使用バージョンは、Access・Wordともに2007です。 Accessのクエリー/テーブルをWord文書に差し込み、Accessから起動してその差し込み文書を印刷したいのですが、うまくいきません。 Getobjectを使ってWordの差し込み文書テストを印刷する以下のようなプロシジャを作成しました。 予め、手動でWordを起動してから、このプロシジャを実行すると、文書『テスト』を開く前に「次の文書を開くと次のコマンドが実行されます。Select*fromテーブル名 データベースのデータが文書に挿入されます続行しますか?」のメッセージが表示されて応答確認が来るのですが、Wordを起動せずに実行すると、上記のメッセージは表示されず、テーブル内のデータに更新がかかっているにもかかわらず、上記メッセージで「いいえ」と応答したのと同様の状態で印刷されます。 はたして、こんなプロシジャでよいのか、使用方法が間違っているのかすら見当がつきません。どなたかアドバイスをお願いいたします。 (作成したプロシジャ) On Error GoTo エラー発生 Dim WordFilePass As String WordFilePass = "C:\Users\User1\Documents\テスト.docx" Dim MyWord As Word.Application Set MyWord = GetObject(, "Word.Application") MyWord.Visible = True MyWord.Documents.Open FileName:=WordFilePass MyWord.ActiveDocument.PrintOut MyWord.Application.Quit Set MyWord = Nothing エラー発生: If Err.Number = 429 Then Set MyWord = CreateObject("Word.Application") Resume Next Else MsgBox "エラーNo : " & Err.Number & vbNewLine & vbNewLine & _ "エラー内容 : " & Err.Description End If

  • ワードの差し込み印刷

    ワードの差し込み印刷ですが、一太郎のように差し込み印刷はできないのでしょうか。というのは、A4の文書を作って、そこに宛名を入れたいのですが、400人分入れなければなりません。そこで、一太郎のようにエクセルからA4文書の宛名に差し込みをしたのですが、職場にワード2003しかないので、困っています。このGW中に完成させなければなりません。ワードで、はがき差し込み以外でできないかどなたか、教えて下さい。

  • 実行時エラー91について

    vbでエクセルにデータを入力したあと、2つのシートを選択し、 その後に両面印刷を行うプログラムを作成中ですが、 印刷の段階で 「実行時エラー91。オブジェクト変数または with ブロック変数が設定されていません。」 とのエラーがでます。 どの部分がおかしいのかわからないので教えて下さい。 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim xlSheet2 As Excel.Worksheet Dim xlFile As String xlFile = App.Path & "表.xls" Dim MyFile As String MyFile = Dir$("表.xls") If Len(MyFile) > 1 Then Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(xlFile) Set xlSheet = xlBook.Worksheets("裏") Set xlSheet2 = xlBook.Worksheets("表") xlApp.Visible = True a1 = Label47.Caption a1 = Format(a1, "#,#") a2 = Label48.Caption m = a1 & "及び" & a2 & "とする。" For k = 1 To 18 s = Mid(m, k, 1) i = 8 + (k - 1) * 2 xlSheet.Cells(40, i).Value = s Next k Set xlSheet2 = xlBook.Worksheets("表") xlSheet2.Cells(4, 2).Value = Text11.Text xlSheet2.Cells(4, 10).Value = Text12.Text xlSheet2.Cells(4, 19).Value = Text13.Text xlBook.Sheets(Array("表", "裏")).Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True ←ここでエラー Set xlApp = Nothing Set xlBook = Nothing Set xlSheet = Nothing Set xlSheet2 = Nothing

  • エクセルVBAでワード文書をPDF保存

    質問の仕方が悪かったようですので先日の質問 https://okwave.jp/qa/q9876787.html を取り消し、再度質問させていただきます。 エクセル2016のワークシート上にオブジェクトの挿入でワードの文書ファイルをアイコンで貼り付けています。VBAでこの文書ファイルを開き、PDFとして保存しようと思います。 見よう見まねで以下のようなコードを書いてみまた。 '参照設定 Microsoft Word 16.0 Object Library Sub test01() Dim objWord As Word.Application Set objWord = CreateObject("Word.Application") objWord.Visible = True Dim objDoc As Word.Document Dim FileName As String FileName = Application.GetSaveAsFilename(, "PDFファイル,*.pdf", , "PDF保存") Set objDoc = Worksheets("Sheet1").OLEObjects(1).Verb(Verb:=xlVerbOpen) objDoc.ExportAsFixedFormat OutputFileName:=FileName, ExportFormat:=wdExportFormatPDF objDoc.Close End Sub これで、文書ファイルは開くのですが、「オブジェクトが必要です」のエラーがでて、Set objDocがEmptyのままPDF保存ができません。どのように直せばいいのでしょうか? ご教示ください。

  • AccessVBAからWordのマクロを実行するには

    [環境]Access2000,Word2000 AccessVBAでWordのオブジェクトをつくりファイルを開くところまでは たどり着いたのですが、開いたWordファイルにあるマクロを実行させる ことが出来ずに困っています。 WordオブジェクトのApplicationとDocumentsオブジェクトの関係も把握 しきれていないため、おかしなソースになっているかも知れません。 よろしくお願いします。 sub DoMacro() Dim oWrd as Word.Application Dim oDoc as Word.Document Set oWrd = New Word.Application With oWrd Set oDoc = oWrd.Documents.Open("c:\test.doc") .Visible = True .Application.Run ("Macro1") oDoc.SaveAs "c:\newTest.doc" .Quit End With End Sub

  • エクセル複数シートのデータをワードに差し込み印刷

    データはエクセルの複数シートにあります。 A2列に氏名、D4列に出欠、他の列には日付、課題などが入力されています。 欠席者のみに、氏名入りで、欠席した回の課題をお知せする文書を作りたいです。 シートがひとつなら、ワードの差込印刷を使ったことがあります。でも、複数シートからデータをとりたい時は、ワードの差込印刷はできますか? ワードの差込印刷が無理なら、エクセルの他のシートにお知らせを作って、差込印刷みたいなことができる方法はありますか? エクセルだけでできたら、それはそれで嬉しいのですが。

  • エクセルVBAでワード文書印刷(2)

    先日、こちらで、VBAを記述したエクセルのブックと同一フォルダーにおいておいたABC.DOCをプリントし、ABC.DOCを閉じる方法を教えていただき、Excel2003でためしたら、下記でうまくいきました。(その際、回答者のchie65536さん、手が滑ってポイントをつけず締め切ってしまいました、申し訳ございません。) ところが今、会社のExcel2000でやったところ、「印刷中です。Wordを終了すると印刷待ちのすべてのジョブがキャンセルされます。」と出てしまいます。 ABC.DOCをプリントしおわったら、ABC.DOCを閉じ、ワードを終了するようにしたいのです。 ためしに、wd.Quitの代わりに、wd.ActiveDocument.Close とすれば印刷はされましたが、ワードが終了しません。 wd.ActiveDocument.Close のあとに wd.Quitを入れると、「印刷中です。Wordを終了すると・・・・」が出てしまいます。 どうなおせばよいのでしょうか? Sub Word_Print() Dim wd As Object Set wd = CreateObject("Word.application") wd.Visible = True wd.documents.Open Filename:=ThisWorkbook.Path & "\ABC.doc" wd.ActiveDocument.PrintOut wd.Quit Set wd = Nothing End Sub よろしくお願いいたします。

専門家に質問してみよう