アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。お世話になります。
エクセルの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件)

ヨソ事してる間に回答増えてましたw


ANo.2の方法もいいですね。savechanges:=trueは、Close時の動作を、未保存なら保存して終了(確認ダイアログでない)にします。このあたりの方法選択は好みで。
    • good
    • 0

>エクセルの値が更新されていない事があってその方法は止めました


私のテスト
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の直前に入れると「他のコード行に起因する」警告・確認メッセージは、影響を受けないのではないか。
やってみては。
    • good
    • 0

そもそも保存処理入っていないんじゃないかな…



ThisWorkbook.Saved = True は、「マクロの入っているブック」を「保存済み(最終保存から変更されていない扱い)」にする命令にすぎず、おそらくは役割を果たしていません。保存は、Close時の「未保存だから保存しますか?」ダイアログに頼っているのだと思います。そのため、単純にダイアログOFFすると保存されないのでしょう。Saveしてください。

 ActiveWorkbook.Save

名前を付けて保存する場合は .SaveAs を。保存処理は何かとダイアログが出やすいので、ANo.1のダイアログOFFもいずれ欲しくなると思いますよ。
また、曖昧な処理は今回のように混乱を招くので、リンク更新もOpen時の自動処理に頼らず、マクロでしっかり指示した方がいいかもです@.UpdateLink か .Calculateあたり
    • good
    • 0

ActiveWindow.Close savechanges:=true


とします。

若しくは
workbooks("(Aファイル).csv").close savechanges:=false
のように,activeなんたらを使わないマクロを推奨します。
    • good
    • 0

「保存しますか?」と聞いてくる直前に以下の様に入れ、



Application.DisplayAlerts = False

「ActiveWindow.Close」のあとにでも、以下の様に入れてみてください。

Application.DisplayAlerts = True

この回答への補足

kyboさん

早速の回答ありがとうございます。
実は、Application.DisplayAlerts = False を使っていた時期もあったのですが、
エクセルの値が更新されていない事があって
その方法は止めました。

申し訳ないのですが、他の方法がありましたらよろしくお願いします。

まずは、回答いただきまして、ありがとうございました。

補足日時:2011/06/08 10:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!