
エクセル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)
-
「プリンタの設定」ダイアログボックスのプリンタを指定したい。
その他(プログラミング・Web制作)
-
印刷ダイアログを表示させない方法
Visual Basic(VBA)
-
-
4
【Excel VBA】プリンタのプロパティダイアログの表示
Excel(エクセル)
-
5
マクロでプリンタ、用紙、給紙先を指定するには?
Excel(エクセル)
-
6
エクセルのマクロで印刷プレビューを閉じる方法
Excel(エクセル)
-
7
マクロで印刷→セルの値から部数変更するには
Excel(エクセル)
-
8
ファイル保存時のダイアログ表示フォルダを変更したい
Visual Basic(VBA)
-
9
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
10
EXCELで複数のシートを一度に「シートの保護」することはできますか?
Excel(エクセル)
-
11
印刷をキャンセル
Excel(エクセル)
-
12
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
13
EXCEL VBA 印刷プレビューダイアログのボタン操作を判定したい
Visual Basic(VBA)
-
14
エクセルの印刷ダイアログをSendkeysで操作したい。
PowerPoint(パワーポイント)
-
15
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
16
エクセルVBAでプリンタプロパティを操作したい
Visual Basic(VBA)
-
17
callで順に実行されるプロシージャを途中で止める方法
Excel(エクセル)
-
18
ExcelVBAでPDFを閉じるソース
その他(Microsoft Office)
-
19
VBAでファイル名を指定して保存するとき
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
通販でキャンセルした商品が届...
-
注文をキャンセルした商品が届...
-
至急!詐欺の可能性がある裏DVD...
-
タイミーで応募キャンセルされ...
-
旅行のキャンセル料について相...
-
居酒屋のキャンセルに関する行...
-
預かり金とキャンセル料返還に...
-
友人と2人で行くはずの旅行を...
-
急に旅行に行けないかもしれな...
-
当日キャンセルしてしまった美...
-
カラオケで勤務したことのある...
-
飲み会を当日キャンセルしたん...
-
友人(4人)との旅行当日体調不...
-
Application.Dialogs(xlDialogS...
-
ジャンカラで支払いせず出てき...
-
ママ会でのキャンセル料
-
ドタバタキャンセル
-
強制出張と旅行が被った場合の...
-
裏DVD
-
ドタキャンの知人に飲み会のキ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
通販でキャンセルした商品が届...
-
旅行のキャンセル料について相...
-
友人と2人で行くはずの旅行を...
-
美容室でのネット予約を2日くら...
-
タイミーで応募キャンセルされ...
-
飲み会を当日キャンセルしたん...
-
友人(4人)との旅行当日体調不...
-
急に旅行に行けないかもしれな...
-
派遣のスポットについて質問で...
-
女友達が向こうから誘ってきた...
-
お葬式で旅行がキャンセルに
-
裏DVD
-
「参考になった」キャンセル方法
-
ジャンカラで支払いせず出てき...
-
至急!詐欺の可能性がある裏DVD...
-
2回連続ママ友にドタキャンされ...
-
当日キャンセルしてしまった美...
-
ドタキャンの知人に飲み会のキ...
-
家電のキャンセルの理由を正直...
-
お誘いが被った場合、周りがど...
おすすめ情報