
エクセル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(エクセル)
-
ファイル保存時のダイアログ表示フォルダを変更したい
Visual Basic(VBA)
-
-
4
エクセルのマクロで印刷プレビューを閉じる方法
Excel(エクセル)
-
5
VBA ファイルを開くダイアログでの初期表示にファイルサーバーを指定
Excel(エクセル)
-
6
「プリンタの設定」ダイアログボックスのプリンタを指定したい。
その他(プログラミング・Web制作)
-
7
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
8
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
9
EXCEL VBA 印刷プレビューダイアログのボタン操作を判定したい
Visual Basic(VBA)
-
10
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
11
マクロで印刷→セルの値から部数変更するには
Excel(エクセル)
-
12
Excel VBAでPDFファイルをMicrosoft Print to PDFで出力したい
Visual Basic(VBA)
-
13
callで順に実行されるプロシージャを途中で止める方法
Excel(エクセル)
-
14
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
15
別ブックをダイアログボックスで指定してそこにあるシートをコピーしたい
Excel(エクセル)
-
16
エクセルVBAで手差しトレイを指定させたい。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
友人と2人で行くはずの旅行を...
-
「参考になった」キャンセル方法
-
お葬式で旅行がキャンセルに
-
旅行のキャンセル料について相...
-
飲み会を当日キャンセルしたん...
-
通販でキャンセルした商品が届...
-
女友達が向こうから誘ってきた...
-
ジャンカラで支払いせず出てき...
-
前からの約束、当日に連絡がき...
-
当日キャンセルしてしまった美...
-
ホテルキャンセルを忘れていて...
-
ドタキャンの知人に飲み会のキ...
-
裏DVD
-
美容室でのネット予約を2日くら...
-
キャンセル料を払いたくありません
-
大江戸温泉 君津の森を予約して...
-
飲食店で注文後にキャンセルは
-
急に旅行に行けないかもしれな...
-
これらの流行語の意味は?
-
タイミーで応募キャンセルされ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
通販でキャンセルした商品が届...
-
ジャンカラで支払いせず出てき...
-
美容室でのネット予約を2日くら...
-
旅行のキャンセル料について相...
-
友人と2人で行くはずの旅行を...
-
当日キャンセル料の請求について
-
「参考になった」キャンセル方法
-
飲み会を当日キャンセルしたん...
-
友人(4人)との旅行当日体調不...
-
裏DVD
-
女友達が向こうから誘ってきた...
-
タイミーで応募キャンセルされ...
-
急に旅行に行けないかもしれな...
-
お葬式で旅行がキャンセルに
-
派遣のスポットについて質問で...
-
当日キャンセルした飲み会のキ...
-
注文をキャンセルした商品が届...
-
confirm の OK、キャンセル ...
-
旅行前に友達と喧嘩をしました...
-
ドタキャンの知人に飲み会のキ...
おすすめ情報