• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ActiveWorkBook VBA)

ActiveWorkBook VBA

このQ&Aのポイント
  • VBAを使用して、フォルダ内のCSVファイルをXLS形式で保存したい場合、アクティブなブックがバラバラになり、ループがうまく機能しないことがあります。
  • CSVファイルを開いたときにそのファイルがアクティブになるため、ループが適用されず、正常に処理できません。
  • 解決方法として、ディレクトリ内のCSVファイルを一度に開き、アクティブなブックを統一することが重要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 >あるフォルダにあるcsvファイルをxlsで保存したいと思いましたが、アクティブになるBOOKがバラバラ? マクロを入れた元のブックにあわせた統一した枝番でもつけた名前を付けるつもりなのですか?コードの意味が良く分りません。いくらスクリプト言語でも、ActiveWorkbook が変わって、次のコードを見失うことはありません。 >Aname = Left(Fullp, InStr(1, Fullp, ".") - 1)   ↑ マクロで動かしているアクティブブックのファイル名 >ActiveWorkbook.SaveAs filename:=Aname & ".xls", FileFormat:=xlExcel9795  Aname =アクティブブックのファイル名 で保存? それと、ファイルの削除は、その都度行ったほうがよいと思います。特に理由はありません。 サンプルとして作ってみました。 Sub test2()   Dim myCSV As String   Dim FilePath As String   Dim BaseName As String   Application.ScreenUpdating = False   FilePath = ActiveWorkbook.Path & "\"   myCSV = Dir(FilePath & "*.csv")   On Error Resume Next   Do Until myCSV = ""    BaseName = Mid$(myCSV, 1, InStrRev(myCSV, ".") - 1)    Workbooks.Open FilePath & myCSV    ActiveWorkbook.SaveAs Filename:=BaseName & ".xls", FileFormat:=xlExcel9795    ActiveWorkbook.Close    Kill FilePath & myCSV    myCSV = Dir()   Loop   On Error Goto 0 End Sub

mimi923
質問者

お礼

ありがとうございます(^^♪ お昼からずっとやっていたので助かりました。

関連するQ&A