- ベストアンサー
VBAを使用してCSVデータをエクセルにまとめる方法
- VBAを使用して同一フォルダ内のCSVデータをエクセルのワークブックにまとめる方法を教えてください。
- デバッグモードでは問題なく動作するVBAコードが、通常の実行ではエクセルが閉じてしまいます。原因が分からず困っています。
- 使用している環境はWin7のOffice2013です。ご指摘いただけると助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>ActiveWorkbook.Close False クローズするウィンドゥを「明示」してクローズする事。 FileA = "C:\Users\Public\Documents\01.csv" (略) ActiveWorkbook.Close False を FileA = "C:\Users\Public\Documents\01.csv" (略) Application.Windows("01.csv").Close SaveChanges:=False に変更。同様に FileB = "C:\Users\Public\Documents\02.csv" (略) ActiveWorkbook.Close False を FileB = "C:\Users\Public\Documents\02.csv" (略) Application.Windows("02.csv").Close SaveChanges:=False に変更。同様に FileC = "C:\Users\Public\Documents\03.csv" (略) ActiveWorkbook.Close False を FileC = "C:\Users\Public\Documents\03.csv" (略) Application.Windows("03.csv").Close SaveChanges:=False に変更。 ステップ実行ではなく、一気に実行すると「アクティブなワークブック」が「ThisWorkbook」のまま切り替わらないで「ActiveWorkbook.Close False」が実行されてしまう。 つまり「csvファイルでなく、自分自身が閉じられてしまう」事になる。 自分自身が閉じられれば、エクセルそのものも閉じられてしまうことになる。
お礼
問題が解消されました 他の仕組みと競合しておりました ありがとうございました
補足
ご回答ありがとうございます。 ご指摘いただいた箇所を修正してもまだ落ちてしまいます。 追加で Workbooks("test.xlsm").Activate Sheets("02").Select Sheets("02").Cells.Select とシートをアクティブにしても落ちる状態です。