ドラッグとドロップを禁止するために以下のマクロを入れています。
Sub Auto_Open()
'無効
Application.CellDragAndDrop = False
End Sub
Sub Auto_Close()
'有効
Application.CellDragAndDrop = True
End Sub
上記のマクロだと、ファイルを開いた時は CellDragAndDrop は無効なのですが
終了するときに、[終了]-[キャンセル]して再度作業を進めようとすると CellDragAndDrop が有効になってしまいます。
Sub Auto_Close() で、[終了]-[キャンセル]の場合のみ、
Application.CellDragAndDrop = False とするには、どのうように記述すれば良いのでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
なぜ質問のようになるかというと、
書き込み確認メッセージが出る前にAuto_Closeが処理されるからです。
で、代わりに、Workbook_BeforeCloseイベントで、
独自の書込み確認メッセージを表示してコントロールしてみたらどうでしょう。
確認メッセージにはデフォルトのメッセージと同様、
「はい」「いいえ」「キャンセル」の3つのボタンを表示させます。
また、Auto_OpenもWorkbook_Openに変えて統一しておくといいでしょう。
Atuo_OpenとAuto_Closeは削除して
以下のコードを、ThisWorkBookモジュールにコピペ。
'-------------------------------------------
Private Sub Workbook_Open()
Application.CellDragAndDrop = False
End Sub
'-------------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim msg
msg = MsgBox(ThisWorkbook.Name & " を保存しますか?", vbYesNoCancel, "確認")
Select Case msg
Case vbYes
Application.CellDragAndDrop = True
ThisWorkbook.Save
Case vbNo
Application.CellDragAndDrop = True
ThisWorkbook.Saved = True
Case Else
Cancel = True
End Select
End Sub
'-------------------------------------------------
Auto_CLoseではなぜ上記のことができないかはお分かりですね?
以上です。
ありがとうございます!
[終了]-[キャンセル]でもドラッグ・ドロップが無効のまま作業することができました。
ただ、「確認」のメッセージボックス[はい][いいえ]を選択すると、
「Microsoft Office Excel」の[はい][いいえ][キャンセル]メッセージが再度表示されてしまいます。
この表示が出ないようにすることはできるのでしょうか?
度々申し訳ありませが、ご教示いただけますでしょうか。
よろしくお願いします。
No.3
- 回答日時:
またまた、myRangeです。
xl2007でも検証しました。
やはり、デフォルトの確認メッセージは出ません。
検証は、マクロを含んでいるブック(thisworkbook)ひとつで試しています。
当方のコードで、独自のメッセージとデフォルトのメッセージがでるとしたら
どんな条件のときなのか当方としても知っておく必要がありますので
先の補足要求および、質問者の検証条件など、提示してください。
以上です。
お返事・お礼が遅くなって申し訳ありません。
ご指摘のとおり、Auto_Closeに図形を貼り付けるマクロが残っていました。
Auto_Closeを完全に削除し Workbook_BeforeCloseに以下のように書き込んで解決しました。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim msg
msg = MsgBox(ThisWorkbook.Name & " を保存しますか?", vbYesNoCancel, "確認")
Select Case msg
Case vbYes
Application.CellDragAndDrop = True
Sheets("入力1").Shapes("A").Visible = True
Sheets("入力2").Shapes("B").Visible = True
Sheets("入力3").Shapes("C").Visible = True
ThisWorkbook.Save
Case vbNo
Application.CellDragAndDrop = True
Sheets("入力1").Shapes("A").Visible = True
Sheets("入力2").Shapes("B").Visible = True
Sheets("入力3").Shapes("C").Visible = True
ThisWorkbook.Saved = True
Case Else
Cancel = True
End Select
End Sub
お騒がせして本当に申し訳ありません。重ねてお礼とお詫びをいたします。
ありがとうございました。
No.2
- 回答日時:
回答1、myRangeです。
当方で試してみましたが、はい、いいえ、でもデフォルトのメッセージは表示されません。
ま、初めからそこら辺りは考慮したつもりですが。
但し、xl2007が手元にないのでxl2000での検証です。
で、確認。
(1)Auto_Closeは削除したか
(2)当方の回答の外のところに、SaveやCloseなどのコードはないか
(3)当方の回答部分をコピペしたはずですが、それを修正加筆してないか
もしそうなら、その部分(Workbook_Closeイベント)をアップしてください
以上確認願います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Excel(エクセル) 【マクロ】リボン、行列、数式・ステータスバを非表示に 4 2022/12/12 07:32
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Twitterで間違えて生年月日を登...
-
これは誰からのメッセージ??
-
iPhoneのメッセージが消えた
-
電話番号のSMSにメールアドレス...
-
メッセージとメッセージプラス...
-
「一時的にサービスを提供する...
-
メール、メッセージを送る時間...
-
SMSの新着メッセージがあります...
-
結膜下出血になってしまいまし...
-
メールを送った直後に送られて...
-
ウイルス感染?
-
outlookでメールの添付ファイル...
-
メッセンジャーアプリの肩にナ...
-
彫り師の方って基本的にメッセ...
-
プラスメッセージと、ただのメ...
-
LINEの新着メッセージ表示につ...
-
Twitterで海外の方からメッセー...
-
SMSが突然送信だけできなくなり...
-
ミクシーに携帯からログインし...
-
助けて下さい!!Googlefitがカウ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Twitterで間違えて生年月日を登...
-
これは誰からのメッセージ??
-
メールを送った直後に送られて...
-
LINEのメッセージスタンプについて
-
マッチングアプリで質問(住ん...
-
マッチングアプリでマッチした...
-
メッセージとプラスメッセージ...
-
ドコモからのSMSについて
-
メッセージとメッセージプラス...
-
iPhoneのメッセージが消えた
-
結膜下出血になってしまいまし...
-
SMSの新着メッセージがあります...
-
電話番号のSMSにメールアドレス...
-
メール、メッセージを送る時間...
-
プラスメッセージと、ただのメ...
-
Twitterでボイスメッセージ送れ...
-
彫り師の方って基本的にメッセ...
-
エクセルのマクロでwindowsのメ...
-
SMSが突然送信だけできなくなり...
-
アンドロイドスマホのメッセー...
おすすめ情報