
起動中のBookでファイル名が Data.xlsのものを閉じたいと思いますが、
上書き確認メッセージを出さないように
oExcel.DisplayAlerts = False
を設定すると
エラーになります。
CreateObject で作成した場合は、DisplayAlerts が使えるようですが、
すでに起動済みのBookを確認なしで上書き保存するにはどうしたらいい
のでしょうか?
Sub UnloadFile()
Dim myBook2 As Workbook
Dim myBook1 As Workbook
For Each myBook2 In Workbooks
If myBook2.Name = "Data.xls" Then
Set myBook1 = myBook2
myBook1.SaveAs myBook1.FullName
myBook1.Close
End If
Next myBook2
Set myBook1 = Nothing
End Sub
No.6
- 回答日時:
補足しておきます。
>何も編集を加えない場合も、myBook1.Closeの時点で保存しますか?と聞いてきます。
真に何も変更が加わっていない場合は、保存確認のメッセージは表示されないはずです。
それにも関わらず、メッセージが表示されるのは、なんらかの変更が加わったためでしょう。
例えば、TODAY関数などブックを開いた時点で再計算を行う関数が使われている場合、人の手による直接の変更がなくとも、EXCELは「変更あり」とします。
No.5
- 回答日時:
>この場合は Application.DisplayAlerts = False でいいということになるのでしょうか?
保存しない場合があるのであれば、その通りです。
ブックを閉じるCloseメソッドの直前に
Application.DisplayAlerts = False
を入れ、閉じたあとに、
Application.DisplayAlerts = True
として元に戻してやります。
No.4
- 回答日時:
#1です。
補足しておきます。> oExcel.DisplayAlerts = False
この文法は間違っています。DisplayAlerts プロパティーは Application オブジェクトのプロパティーですから、ワークシートに対して設定するものではありません。
> If myBook2.Name = "Data.xls" Then
この行でブックを特定する時点で「上書き保存」であることが特定できるのですから、SaveAs メソッドを使う必要がありませんし、ファイル名を指定する必要もありません。オリジナルコードを尊重し、Save メソッドが適当だと思います。
また、「上書き保存」の場合は DisplayAlerts プロパティーを操作する必要もないと思います。(アラートが表示されないので)
したがって、#1の回答となっています。
この回答への補足
ご回答ありがとうございます。
保存しないで myBook1.Close だけしたいときはどうするのでしょうか?
何も編集を加えない場合も、myBook1.Closeの時点で保存しますか?と聞いてきます。
この場合は Application.DisplayAlerts = False でいいということになるのでしょうか?
No.3
- 回答日時:
通常は、こういうコードでよいわけですが、
'---------------------------
Dim myBook2 As Workbook
For Each myBook2 In Workbooks
If myBook2.Name = "Data.xls" Then
Application.DisplayAlerts = False
myBook2.Save 'As myBook2.FullName 'でも可能
myBook2.Close
Application.DisplayAlerts = True
End If
Next myBook2
'---------------------------
>CreateObject で作成した場合は、DisplayAlerts が使えるようですが、
>すでに起動済みのBookを確認なしで上書き保存するにはどうしたらいい
>のでしょうか?
CreateObject という話が出てくることは、Excelからではないのですか?
外部のVBAやVBから、という意味でしょうか?
もし、そうなら、この方法は違いますね。
エラーは、どのようなメッセージでしょうか?
この回答への補足
#1,#2,#3さんの方法でOKでした。ありがとうございました。
>エラーは、どのようなメッセージでしょうか?
エラーでなくて確認メッセージですね。
勘違いでした。
myBook1.DisplayAlerts = False ってやると
実行時エラー 438
このオブジェクトは、このプロパティーまたはメソッドをサポートしていません。
となりますね。
No.1
- 回答日時:
こんにちは。
やりたいことは、上書き保存ですよね?
myBook1.SaveAs myBook1.FullName
を
myBook1.Save
に変更してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Wordの差し込み印刷でSql文を変...
-
ワード文書を保存するとPDF...
-
wordで1ページだけを保存したい時
-
EXCELにて変更していないのに毎...
-
差し込みで設定した書式が保存...
-
ワードでアンドゥができなくな...
-
Word「自動バックアップ」、「...
-
RTF形式でのパスワード設定
-
Docuworksに代わるソフトを教え...
-
PDFを1ページ目から表示させた...
-
WORDの文字が赤になり取消...
-
Word文章の文字が赤くなってしまう
-
【ワード】挿入した画像のファ...
-
ワードやエクセルで作ったファ...
-
WORDの校正の変更履歴で変更日...
-
Wordの差込印刷でNextRecordを...
-
メールでもらった画像をコピー...
-
エクセル ファイルを削除でき...
-
Illustratorでファイルを上書き...
-
”挿入”がグレーアウトして選択...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワード文書を保存するとPDF...
-
Wordの差し込み印刷でSql文を変...
-
openofficeのソフトからWord/Ex...
-
差し込みで設定した書式が保存...
-
wordで1ページだけを保存したい時
-
EXCELにて変更していないのに毎...
-
Word「自動バックアップ」、「...
-
RTF形式でのパスワード設定
-
DVDで、ワードの文書は保存でき...
-
winXPにて質問です。ワード文章...
-
エクセルで…
-
Excel VBAで確認なしで上書き保存
-
Wordのテンプレートのこと...
-
Microsoft office Word
-
マイクの設定はどのように?
-
ワードに関して
-
紛失したUSBの文章を復元し...
-
ワードにでるメッセージについて
-
Wordに貼り付けた写真をjpeg....
-
ワードで保存しないを間違って...
おすすめ情報