- ベストアンサー
AccessでExcelのマクロを実行させたい
WinXpでAccess2002を使用しています。 今、Accessのマクロで、ExcelのAファイルを出力させましたが、この後、続けて、以降の処理を行うにはどのように記述すれば良いでしょうか? (1)ExcelのAファイルを開く。 (2)AファイルのマクロA-1を実行させる。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 >ExcelのAファイルを出力させましたが、この後、続けて、以降の処理を行うにはどのように記述すれば良いでしょうか? Aファイルの出力の仕方が、Access マクロで、ブックが開いている状態なら、GetObject を使い、単独で開くなら、CreateObject になります。 Sub AccTestMacro() Dim xlApp As Object Dim xlBook As Object Const MYBOOK As String = "C:\A.xls" Set xlApp = CreateObject("Excel.Application") 'Set xlApp = GetObject(,"Excel.Application") '開いた状態 Set xlBook = xlApp.Workbooks.Open(MYBOOK) xlApp.Visible = True xlApp.Run "'" & MYBOOK & "'!A-1" 'xlBook.Save '変更を加えたのなら、保存する xlBook.Close False Set xlApp = Nothing End Sub 後は工夫してください。
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。Wendy02です。 >ブックが開いた状態から、続けたいので、GetObjectを使うのですね。 Excelのブックが開いた状態なら、GetObjectです。そのほうが確かです。ただし、GetObjectは、ブックが開いていないとエラーが出ますので、以下のようにOn Error トラップします。 そして、例えば、コマンドボタンでしたら、コードビルダで、以下のようになるかと思います。(思い当たる他のエラー処理は、施してありますので、Resume で戻る必要はありません。) Private Sub コマンド1_Click() Dim xlApp As Object Dim xlBook As Object Const MYBOOK As String = "C:\A.xls" 'ブック名 If Dir(MYBOOK) = "" Then MsgBox "ファイルが見つかりません。", 16: Exit Sub On Error Resume Next Set xlApp = GetObject(, "EXCEL.Application") If Err() =429 Then Set xlApp = CreateObject("Excel.Application") End If Set xlBook = xlApp.Workbooks.Open(MYBOOK) xlApp.Visible = True xlApp.Run "'" & MYBOOK & "'!A-1" xlBook.Save '保存する xlBook.Close False xlApp.Quit Set xlBook = Nothing Set xlApp = Nothing End Sub 適当に加工してください。
お礼
ご丁寧にありがとうございました。 早速やってみます。
お礼
ご丁寧にありがとうございました。
補足
早速ご回答ありがとうございました! ブックが開いた状態から、続けたいので、GetObjectを使うのですね。 ただ、全くの素人なので、再度お聞きしたいのですが、上記のVBAですが、Accessのマクロで、ファイル出力後にビルド記述すると言う事で宜しいでしょうか?申し訳ありませんが宜しくお願いします。