指定範囲をCSVで出力する処理を書き、希望通りの挙動になりました。
ただ一つ問題があり、ファイル起動後初回実行時は正常動作、しかしもう一度同じ処理を実施するとExcelがフリーズし止まったままになるか、Excelがダウンし強制終了します。
ファイル起動⇒処理実行⇒ファイル保存⇒ファイル閉じる⇒再度ファイル開く⇒実行。
このように一旦ファイルを閉じると問題がないことから、ファイル起動後2回目以降で問題が発生していると思われます。
オブジェクトの解放を疑い、調べてみましたが解決に至れず困っています。
何卒、解決策をご教示ください。
Sub generateCSV()
Dim sname As String
Dim sheet As Worksheet
Dim rng As Range
Dim lastRow As Long
Dim path As String
Dim fn As String
path = ThisWorkbook.path sname = ActiveSheet.Name Set sheet = ThisWorkbook.Worksheets(sname) lastRow = 100 Set rng = sheet.Range(sheet.Cells(15, 1), sheet.Cells(lastRow, 10)) rng.Copy Destination:=Worksheets.Add.Range("A1") ActiveSheet.Move fn = path & "\" & Format(Date, "yyyymmdd") & " sales order data.csv" Application.DisplayAlerts = False If isFile(fn) Then Kill fn ActiveWorkbook.SaveAs Filename:=fn, FileFormat:=xlCSV ActiveWorkbook.Close savechanges:=False Application.DisplayAlerts = True sheet.Range("J9").Value = fn Set sheet = Nothing Set rng = Nothing
End Sub
回答3件
あなたの回答
tips
プレビュー