|
▼にしもり さん:
こんにちわ。
あまり綺麗なコードでないので申し訳ないのですが…
※エクセルとADOの参照設定をしてください。
Sub TEST()
Dim FSO As Object
Dim xlsApp As New Excel.Application
Dim xlsWkb As New Excel.Workbook
Dim MyFile As Variant
Dim Cnt As Long
'出力ファイルの指定
MyFile = "C:\新しいフォルダ\回数表.xls"
'存在チェック
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not (FSO.FileExists(MyFile)) Then
DoCmd.TransferSpreadsheet acExport, _
acSpreadsheetTypeExcel9, "aa", MyFile, True
Else
'出力先ファイルにシートを追加
Set xlsWkb = xlsApp.Workbooks.Open(MyFile)
Cnt = xlsWkb.Sheets.Count
xlsWkb.Sheets.Add after:=xlsApp.Worksheets(Cnt)
xlsWkb.ActiveSheet.Name = "aa" & Cnt
xlsWkb.Save
xlsWkb.Close: Set xlsWkb = Nothing
xlsApp.Quit: Set xlsApp = Nothing
DoCmd.TransferSpreadsheet acExport, _
acSpreadsheetTypeExcel9, "aa", MyFile, True, "aa" & Cnt & "!"
End If
End Sub
「TransferSpreadsheet」のヘルプには「acExport」の際のRange指定は
記載されていないので正しい使い方ではないと思いますが、
当方の環境では作動しております。(WindowsXP/Access2002/Excel2002)
|
|