プロシージャで、「名前を付けて保存」ダイアログを表示させて、[.csv]形式で保存するという記述をしたいのですが、うまくいきません。
望む手作業的プロセスは次のような感じです。
1.保存したいシートをアクティブにする
2.「ファイル」→「名前を付けて保存」
3.ファイル名を「サンプルエクスポート」と入力
4.ファイルの種類で「CSV(カンマ区切り)」を選択
こうすると、「選択した種類のファイルは複数の複数のシートを含むブックをサポートしていません。」注意メッセージがでるので、OKをして、次の注意メッセージもOKすると、数値データとしてのcsvファイルがアクティブシート分だけ出来ます。
これをVBAで再現したいのです。
以下、具体的な記述です。
------------------------------
Sub エクスポートの実行()
Dim 既定ファイル名 As String
Dim 保存ファイル名 As Variant
既定ファイル名 = "サンプルエクスポート.csv"
保存ファイル名 = Application.GetSaveAsFilename(既定ファイル名, "CSV(カンマ区切り)(*.csv),*.csv")
If 保存ファイル名 = False Then
MsgBox "保存は中止されました"
Else
ActiveWorkbook.SaveCopyAs 保存ファイル名
End If
End Sub
-------------------------------
■上記の記述でうまくいかないのが、実際に保存された[.csv]ファイルに全てのシートが保存されていて、関数も入っているということです。実際に拡張子は[.csv]となって保存されていますが、中身は[.xls]となんらかわっていないように見えます。
構文が良くわかっていないのだと思うので、上記のプロシージャで具体的な修正方法を教えていただけると助かります。
要は、手作業ではなくVBAを利用してエクスポートデータを作りたいというのが目的です。
No.2ベストアンサー
- 回答日時:
こんばんは。
簡単に書けば、以下のように修正すればよいと思います。
ActiveWorkbook.SaveCopyAs 保存ファイル名
↓
ActiveWorkbook.SaveAs 保存ファイル名, xlCSV
'ActiveWorkbook.Close False
しかし、もし、元のブックに戻るのでしたら、Else の以下を、以下のようにしてみたらどうでしょうか?
Else
With ThisWorkbook.ActiveSheet
Workbooks.Add
.Cells.Copy ActiveSheet.Range("A1")
ActiveWorkbook.SaveAs 保存ファイル名, xlCSV
ActiveWorkbook.Close False
End With
End If
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) セルの値からファイルを複数作りたい2 3 2022/10/07 15:54
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル文書を保存したらメモ...
-
メール添付されているファイル...
-
いきなりPDFでPDFファイルを開...
-
エクセルを上書き保存したのに...
-
エクセルでVBAを使用して1分毎...
-
マクロ VBA ファイル名を連番...
-
エクセルでCSVファイルとして保...
-
エクセル・マクロ(VBA)で、指定...
-
エクセル 更新していないのに...
-
Excelでの最終更新時刻表示
-
ピボットテーブルの更新ができない
-
Excelで指定範囲だけを(.prn)保...
-
セルの塗りつぶしの色を好きな...
-
エクセル2019でPDFファイル名に...
-
エクセル2016 上書き保存が出来...
-
Excel2019とOneDriveでのサイン...
-
エクセルを開いた時に強制的に...
-
Illustratorファイルに読み取り...
-
マクロでエクセルをメール送信...
-
Excelの読み取り専用について質...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを上書き保存したのに...
-
Excel画面の自動更新 Excelファ...
-
エクセル文書を保存したらメモ...
-
いきなりPDFでPDFファイルを開...
-
メール添付されているファイル...
-
エクセルでCSVファイルとして保...
-
エクセルでVBAを使用して1分毎...
-
ピボットテーブルの更新ができない
-
マクロ VBA ファイル名を連番...
-
開いてるファイル(エクセル等)...
-
OneDriveに保存したファイルは...
-
Illustratorファイルに読み取り...
-
エクセル・マクロ(VBA)で、指定...
-
「名前を付けて保存」ができな...
-
エクセルで作った書類の作成者...
-
エクセル表のCSV化ができない
-
セルの塗りつぶしの色を好きな...
-
「変更を保存しますか?」と聞...
-
エクセルがwindows終了時に未保...
-
エクセルで保存の前に固まって...
おすすめ情報