|
[OSのVER]:WindowsXP
[AccessのVER]:ACCESS2000/2007共存
PCの中にexcel2000/2007が共存している環境でACCESS2000のVBAにてexcel2000を新規に開き、書き込みを行いたいです。
今は下記のようにvbaを動かしています。
Private Sub cmd_OK_Click()
On Error GoTo Err_cmd_OK_Click
'変数を宣言します。
Dim strSql As String 'SQLを実行する際の処理内容を格納する変数
Dim MyDB As Database 'データベースオブジェクトへの参照を格納する変数
Dim TargetRecordSet As Recordset 'レコードセットオブジェクトへの参照を格納する変数
Dim strPass As String
Dim count_DollAC As Long
Dim xlApp As Excel.Application
’マクロの実行
strSql = "account extract"
DoCmd.RunMacro strSql
strPass = "C:\Program Files\Microsoft Office\Office\Excel.Exe"
Shell strPass, 1
Set xlApp = GetObject(, "Excel.Application.9")
xlApp.Visible = True
Set MyDB = CurrentDb
'抽出したtblDoll_AccountレコードをExcelシートに貼り付けます。
Set TargetRecordSet = MyDB.OpenRecordset("tblDoll_Account")
count_DollAC = TargetRecordSet.RecordCount
xlApp.Sheets(1).Select
xlApp.Range("A2").CopyFromRecordset TargetRecordSet '目次次列より貼付
このようにVBAを実行すると、Shellで作成した新規のエクセルファイル(excel2000)ではなく、今開いてるexcel全て(excel2007を含む)のうち、一番最初に開いているexcelシートに書き込みがされてしまいます。
Shellで作成した新規のエクセルファイルに書き込みをするにはどのようにしたらよいのでしょうか。
どなたかご存じの方いらっしゃいましたら教えてください!!
|
|