Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5367 / 13646 ツリー ←次へ | 前へ→

【51268】キャンセル時 VBA初心者 07/9/7(金) 8:25 質問[未読]
【51269】Re:キャンセル時 neptune 07/9/7(金) 8:39 回答[未読]
【51270】Re:キャンセル時 VBA初心者 07/9/7(金) 9:22 お礼[未読]

【51268】キャンセル時
質問  VBA初心者  - 07/9/7(金) 8:25 -

引用なし
パスワード
   初めまして。
どなたか指導お願いします。

エクセルの指定したシートのみを別ブックとして保存するマクロです。
自分で好きな名前をつけて保存できるようにしたのですが、
その名前を付けるときに、やっぱりやめようとしてキャンセルボタンを
押しても、強引にブックができてしまいます。
この強引ブックができないようにするにはどうしたらよいでしょうか。

どうぞよろしくお願いします。

Sub 演算の終ったシートだけを別名ブックとして保存する()
Sheets("売上順位表").Select
別名 = Application.InputBox(prompt:="名前をつけてね(*^_^*)",
Title:="  新しいエクセルファイルとして保存します", Type:=2)
別名 = パス & "\" & 別名 & ".xls"
Sheets("売上順位表").Copy
ActiveWorkbook.SaveAs Filename:=別名
ActiveWorkbook.Close
End Sub

【51269】Re:キャンセル時
回答  neptune  - 07/9/7(金) 8:39 -

引用なし
パスワード
   こんにちは

//////////////InputBox メソッドHelpより解説部分の一部引用//////////
。[キャンセル] ボタンをクリックすると、False が返されます。
///////////////////引用終わり//////////////////////////////////////
ですから
dim 別名 As Variant
省略
別名 = Application.InputBox(prompt:="名前をつけてね(*^_^*)", _
  Title:="  新しいエクセルファイルとして保存します", Type:=2)
If TypeName(別名) = "Boolean" Then 'キャンセル
    Exit Sub
else
'したい処理
end if

のように出来ます。

※VBE画面の
 ツールメニュー
   オプション
     編集タブの「変数の宣言を強制する」
にチェックを入れることを強くお勧めします。
入れないと、バグの元になります。

【51270】Re:キャンセル時
お礼  VBA初心者  - 07/9/7(金) 9:22 -

引用なし
パスワード
   早速のご返答ありがとうございました。
おかげさまで解決しました。
どうもありがとうございました(*^_^*)

5367 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free