
エクセル2000です。
Sheet1を複製し名前をつけて保存するマクロを書きました。
以下のとおりですが、キャンセルされた場合でも「保存しました」のメッセージが出てしまいます。
キャンセルされたことを取得するにはどう書けばいいでしょうか?
Sub tesy01()
Dim ns As Workbook
Dim fn As String
Sheets("Sheet1").Copy
Set ns = ActiveWorkbook
With ns.Sheets(1)
.Cells.Copy
.Cells.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
fn = .Range("A1") & Format(Date, "yymmdd")
End With
Application.Dialogs(xlDialogSaveAs).Show ARG1:=fn & ".xls", ARG2:=1
ns.Close (False)
Set ns = Nothing
MsgBox "保存しました。"
ThisWorkbook.Activate
Sheets("Sheet1").Activate
End Sub
No.1ベストアンサー
- 回答日時:
Msgboxを使ったりして
Application.Dialogs(xlDialogSaveAs).Show
の戻り値を確認してみればわかるが,
OKを押した時はTrueで
Cancelを押した時はFalseだ。
#MSDNのどのページに載っているかよくわからんかった。
#そういやあ、http://support.microsoft.com/kb/139723/en-us の method2との違いはなんだろう?
ありがとうございました。
おかげさまで解決しました。
Sub tesy01()
Dim ns As Workbook
Dim fn As String
Sheets("Sheet1").Copy
Set ns = ActiveWorkbook
With ns.Sheets(1)
.Cells.Copy
.Cells.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
fn = .Range("A1") & Format(Date, "yymmdd")
End With
msg = IIf(Application.Dialogs(xlDialogSaveAs).Show(ARG1:=fn & ".xls", ARG2:=1), "保存", "キャンセル")
ns.Close (False)
Set ns = Nothing
MsgBox msg & "しました。"
ThisWorkbook.Activate
Sheets("Sheet1").Activate
End Sub
とやってみました。
No.3
- 回答日時:
Sub test02()
a = Application.Dialogs(xlDialogSaveAs).Show
If a = False Then
MsgBox "Cancelされた"
End If
End Sub
を実行してX(キャンセル)ボタンをクリックしてみればわかる。
普通に選択されたらTrueが帰る。
No.2
- 回答日時:
Sub tesy01()
Dim ns As Workbook
Dim fn As String
Dim s As Boolean
Sheets("Sheet1").Copy
Set ns = ActiveWorkbook
With ns.Sheets(1)
.Cells.Copy
.Cells.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
fn = .Range("A1") & Format(Date, "yymmdd")
End With
s = Application.Dialogs(xlDialogSaveAs).Show(fn & ".xls", 1)
ns.Close (False)
Set ns = Nothing
If s Then
MsgBox "保存しました。"
End If
ThisWorkbook.Activate
Sheets("Sheet1").Activate
End Sub
でどうでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
[ExcelVBA] Application.Dialogs(xlDialogPrint).Show とユーザーフォームについて
Visual Basic(VBA)
-
【Excel VBA】プリンタのプロパティダイアログの表示
Excel(エクセル)
-
「プリンタの設定」ダイアログボックスのプリンタを指定したい。
その他(プログラミング・Web制作)
-
-
4
印刷ダイアログを表示させない方法
Visual Basic(VBA)
-
5
マクロで印刷→セルの値から部数変更するには
Excel(エクセル)
-
6
ファイル保存時のダイアログ表示フォルダを変更したい
Visual Basic(VBA)
-
7
EXCELで複数のシートを一度に「シートの保護」することはできますか?
Excel(エクセル)
-
8
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
9
エクセルのマクロで印刷プレビューを閉じる方法
Excel(エクセル)
-
10
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
11
VBA ファイルを開くダイアログでの初期表示にファイルサーバーを指定
Excel(エクセル)
-
12
印刷をキャンセル
Excel(エクセル)
-
13
EXCEL VBA 印刷プレビューダイアログのボタン操作を判定したい
Visual Basic(VBA)
-
14
マクロでプリンタ、用紙、給紙先を指定するには?
Excel(エクセル)
-
15
Excel VBAでPDFファイルをMicrosoft Print to PDFで出力したい
Visual Basic(VBA)
-
16
callで順に実行されるプロシージャを途中で止める方法
Excel(エクセル)
-
17
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
18
VBAでファイル名を指定して保存するとき
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
美容室でのネット予約を2日くら...
-
タイミーで応募キャンセルされ...
-
通販でキャンセルした商品が届...
-
お葬式で旅行がキャンセルに
-
急に旅行に行けないかもしれな...
-
旅行のキャンセル料について相...
-
ジャンカラで支払いせず出てき...
-
「参考になった」キャンセル方法
-
飲み会を当日キャンセルしたん...
-
居酒屋の予約人数を変更できず...
-
飲食店で注文後にキャンセルは
-
友人(4人)との旅行当日体調不...
-
お誘いが被った場合、周りがど...
-
どう考えてもおかしいのですが...
-
一ヶ月前に友達と会う約束をし...
-
発売日の延期は法的にいつまで...
-
タイミーを使って仕事の応募し...
-
クラブイベントのキャンセル料...
-
訴えられます
-
注文をキャンセルした商品が届...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
通販でキャンセルした商品が届...
-
旅行のキャンセル料について相...
-
友人と2人で行くはずの旅行を...
-
美容室でのネット予約を2日くら...
-
タイミーで応募キャンセルされ...
-
飲み会を当日キャンセルしたん...
-
友人(4人)との旅行当日体調不...
-
急に旅行に行けないかもしれな...
-
派遣のスポットについて質問で...
-
女友達が向こうから誘ってきた...
-
お葬式で旅行がキャンセルに
-
裏DVD
-
「参考になった」キャンセル方法
-
ジャンカラで支払いせず出てき...
-
至急!詐欺の可能性がある裏DVD...
-
2回連続ママ友にドタキャンされ...
-
当日キャンセルしてしまった美...
-
ドタキャンの知人に飲み会のキ...
-
家電のキャンセルの理由を正直...
-
お誘いが被った場合、周りがど...
おすすめ情報