こんにちは。お世話になります。
エクセルのVBAマクロ文の書き方でお知恵を拝借したいと思います。
さて、私のかかる業務でエクセルファイルで営業実績を出しています。
COBOLで作ったファイルをCSVにインポートして
そのCSVの値を別のエクセルファイルで引っ張るという手順を踏んでいますが、
それをマクロで動かすとエクセル上で『保存しますか?』と聞いてきます。
答えは『はい(Y)』で確定しているので、その命令文さえ組み込められればいいのですが、
その命令文の書き方が判りません。
(解決したいVBAマクロの命令文)
Workbooks.Open Filename:="D:\(Aファイル).csv"
Workbooks.Open Filename:="D:\(Aファイルの値を引っ張るBファイル).xls"
ThisWorkbook.Saved = True
(ここで聞いてくる注意に自動で『Y』を入れたいと思っています。)
ActiveWindow.Close
ActiveWindow.Close
以上、お知恵を拝借したく、お願いいたします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
ヨソ事してる間に回答増えてましたw
ANo.2の方法もいいですね。savechanges:=trueは、Close時の動作を、未保存なら保存して終了(確認ダイアログでない)にします。このあたりの方法選択は好みで。
No.4
- 回答日時:
>エクセルの値が更新されていない事があってその方法は止めました
私のテスト
Sub test02()
ActiveSheet.Delete
ActiveWorkbook.SaveAs "book3.xls"
End Sub
両方の行(シート削除とブックの保存)で警告・確認メッセージが出る
ーー
Sub test01()
ActiveSheet.Delete
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "book3.xls"
Application.DisplayAlerts = True
End Sub
シート削除の方は警告・確認メッセージが出る。
ブックに関するほうは出なかった。
ーー
すなわち、言いたいことは、
Application.DisplayAlerts = Falseを
CloseやSaveの直前に入れると「他のコード行に起因する」警告・確認メッセージは、影響を受けないのではないか。
やってみては。
No.3
- 回答日時:
そもそも保存処理入っていないんじゃないかな…
ThisWorkbook.Saved = True は、「マクロの入っているブック」を「保存済み(最終保存から変更されていない扱い)」にする命令にすぎず、おそらくは役割を果たしていません。保存は、Close時の「未保存だから保存しますか?」ダイアログに頼っているのだと思います。そのため、単純にダイアログOFFすると保存されないのでしょう。Saveしてください。
ActiveWorkbook.Save
名前を付けて保存する場合は .SaveAs を。保存処理は何かとダイアログが出やすいので、ANo.1のダイアログOFFもいずれ欲しくなると思いますよ。
また、曖昧な処理は今回のように混乱を招くので、リンク更新もOpen時の自動処理に頼らず、マクロでしっかり指示した方がいいかもです@.UpdateLink か .Calculateあたり
No.2
- 回答日時:
ActiveWindow.Close savechanges:=true
とします。
若しくは
workbooks("(Aファイル).csv").close savechanges:=false
のように,activeなんたらを使わないマクロを推奨します。
No.1
- 回答日時:
「保存しますか?」と聞いてくる直前に以下の様に入れ、
Application.DisplayAlerts = False
「ActiveWindow.Close」のあとにでも、以下の様に入れてみてください。
Application.DisplayAlerts = True
この回答への補足
kyboさん
早速の回答ありがとうございます。
実は、Application.DisplayAlerts = False を使っていた時期もあったのですが、
エクセルの値が更新されていない事があって
その方法は止めました。
申し訳ないのですが、他の方法がありましたらよろしくお願いします。
まずは、回答いただきまして、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルを上書き保存したのに...
-
Excel画面の自動更新 Excelファ...
-
メール添付されているファイル...
-
いきなりPDFでPDFファイルを開...
-
EXCELで同一名のファイルがある...
-
エクセル2019でPDFファイル名に...
-
GetSaveAsFilenameでフォルダを...
-
エクセルがwindows終了時に未保...
-
エクセルでCSVファイルとして保...
-
メールソフト「サンダーバード...
-
マクロ VBA ファイル名を連番...
-
エクセルファイルに上書き保存...
-
エクセル2007で互換モードで上...
-
ピボットテーブルの更新ができない
-
エクセル・マクロ(VBA)で、指定...
-
Illustratorファイルに読み取り...
-
エクセルで保存しますか?のメ...
-
エクセル文書を保存したらメモ...
-
エクセルファイルのPDF保存マクロ
-
エクセルの自動保存ですごい時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを上書き保存したのに...
-
エクセル文書を保存したらメモ...
-
いきなりPDFでPDFファイルを開...
-
メール添付されているファイル...
-
エクセルでVBAを使用して1分毎...
-
マクロ VBA ファイル名を連番...
-
Excel画面の自動更新 Excelファ...
-
ピボットテーブルの更新ができない
-
開いてるファイル(エクセル等)...
-
エクセル・マクロ(VBA)で、指定...
-
OneDriveに保存したファイルは...
-
エクセルでCSVファイルとして保...
-
Illustratorファイルに読み取り...
-
「名前を付けて保存」ができな...
-
エクセルで保存の前に固まって...
-
エクセル表のCSV化ができない
-
マクロVBA特定フォルダーに次々...
-
csvファイルを上書き保存でカン...
-
「変更を保存しますか?」と聞...
-
エクセル 更新していないのに...
おすすめ情報