- ベストアンサー
accessからエクセルのデータ転送上書きVBA
宜しくお願い致します win10 access365 先日、ここでお尋ねした アクセスファイルのVBAコードからエクセルファイルを作成するための コードをお尋ねし、以下では L.xlsxが作成されて、 アクセスのテーブル KJKTから データ転送が 行われるというコードを教示頂きました しかしながら 同様の操作をするときに L.xlsxのデータが 上書きされずに 以前に作ったデータのまま 残ってしまってました そこで 以下のようなエクセルVBAを R.xlsmに作りました Ldataclear() です 毎回 このマクロを実行して いったんL.xlsxの データを当該シートから削除して まっさらにして そのうえで Exp123()を実行すれば 目的は叶うのですが 迂遠なような気もしました もっと簡単に 上書き保存のできる コードなど あるのでありましたら 御教示くださいませ 宜しくお願い致します Private Function Exp123() '変数宣言 Dim srchXls As String 'Excelエクスポート先のファイルパス srchXls = "C:\Users\USER\Desktop\ACCESS\L.xlsx" 'Excelファイルの出力 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "KJKT", srchXls, True, "output" 'Excelファイルをエクスポートした旨を通知する。 MsgBox "Excelをエクスポートしました。" End Function ---------------------- Public Function ExcelRmacro() Dim oApp As Object Set oApp = CreateObject("Excel.Application") oApp.Visible = True 'Only XL 97 supports UserControl Property On Error Resume Next oApp.UserControl = True 'ファイルを開く oApp.Workbooks.Open FileName:="C:\Users\USER\Desktop\ACCESS\R.xlsm" oApp.Application.Run ("'R.xlsm'!Ldataclear") End Function -------------------------------- Sub Ldataclear() ' FilePath = "C:\Users\USER\Desktop\ACCESS\L.xlsx" 'ここにファイルの場所ファイル名を記載 Set Wb = GetObject(FilePath) Set Ws = Wb.Worksheets("output") 'ここにシートを記載する Ws.Cells.Delete Wb.Save Application.CutCopyMode = False ActiveWorkbook.Save End Sub
- みんなの回答 (3)
- 専門家の回答
お礼