Excel 2007 でマクロを作成しようとしています。そのため、Sheet2 (実行ボタンがある場所) にいる間、マクロは指定されたテーブルを Access から読み取り、データを次のシート (sheet3) にコピーします。次に、Sheet3 のみが CSV ファイルに保存され、マクロは Sheet2 に戻り、Sheet3 データを xlsm ファイルから削除します。可能であれば、これらの手順はバックグラウンドで実行され、マクロを実行している人には表示されません。同様の投稿から他のヒントを試してみましたが、役に立ちませんでした。記録されたマクロを調整しようとしていますが、xlsm を csv ファイルとして保存し、xlsm を閉じます。マクロ (PleaseWork.xlsm) はマイ ドキュメントに保存されており、working.csv をデスクトップに保存したいと考えています。できるところを手伝ってください。
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
"ODBC;DSN=MS Access Database;DBQ=CorrectPath\access_dbs\Copy of fldsdb.mdb;Default" _
), Array( _
"Dir=CorrectPath\access_dbs;DriverId=25;FIL=MS Access;MaxBufferSize=2048;Page" _
), Array("Timeout=5;")), Destination:=Range("$A$1")).QueryTable
.CommandText = Array( _
"SELECT table.table_identifier" & Chr(13) & "" & Chr(10) & "FROM table.table" _
)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Table_Query_from_MS_Access_Database"
.Refresh BackgroundQuery:=False
End With
Selection.Copy
Range("B1").Select
Columns("B:B").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=False
Columns("B:B").EntireColumn.AutoFit
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Range("A10").Select
ChDir "Desktop"
ActiveWorkbook.SaveAs Filename:= _
"...\working.csv", FileFormat _
:=xlCSV, CreateBackup:=False
Sheets("Sheet2").Select
End Sub