• 締切済み

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/17069)
回答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で差しこみ印刷のコーディングが質問ですか。質問内容が良く判らない。