
No.1ベストアンサー
- 回答日時:
WorkbookのBeforeCloseイベントを実装する。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel = True
End Sub
とすれば、無反応になります。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call ActiveWorkbook.Close(SaveChanges:=False)
End Sub
とすれば保存せずワークブックを閉じます。
No.4
- 回答日時:
ANo2です。
すみません、無知でした。
ANo1様の回答で、基本的にできますね。
あとはいろいろなケースを考慮して、対応すれば宜しいかと。
失礼いたしました。
No.3
- 回答日時:
すんごいテキトーに書くと、
【Module1】
Private pCloseFlag As Boolean
Public Sub ResetCloseFlag()
pCloseFlag = False
End Sub
Public Function GetCloseFlag() As Boolean
GetCloseFlag = pCloseFlag
End Function
Private Sub SetCloseFlag(value As Boolean)
pCloseFlag = value
End Sub
Sub ボタン1_Click()
Call SetCloseFlag(True)
End Sub
【ThisWorkbook】
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Module1.GetCloseFlag() Then
Exit Sub
End If
Cancel = True
Call Module1.ResetCloseFlag
End Sub
とかしとけばいいのでは。
保存をどうのこうの制御したいなら、BeforeSave()でできますね。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
End Sub
組み合わせて使えばどうとでもなりそうな気がします。
No.2
- 回答日時:
こんにちは
>閉じるボタンを無効化させたいです
>一番したいことは上書きをさせないようにしたいです。
閉じるボタンの操作以外にも、「ファイル」-「保存」とか、あるいは(通常なら)Ctrl+Sなどでも上書きできてしまいますよね。こちらは許可するおつもりなのでしょうか?
上書き保存等が発生した時にマクロ側でそれをキャッチできる仕組みはあります。(BeforeSaveイベント)
これを利用することで、ユーザに対してメッセージ等を出力することは可能ですが、ユーザの操作(=保存操作)をキャンセルする仕組みは無いようです。
>一番したいことは上書きをさせないようにしたいです。
マクロを利用する方法ではありませんが、元のファイルを「読み取り専用」にしておくとか、「ブックの保護」をかけておくなどの方法で、同様の目的が達成できるのではないかと思いますが、こちらではダメなのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
コマンドボタンで「終了ボタン」を作りたい!
Excel(エクセル)
-
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
-
4
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
5
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
6
エクセルでファイルを閉じるボタンから閉じれないようにするには
Visual Basic(VBA)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
エクセルVBA ブックを閉じる前に確認メッセージを表示したい
Excel(エクセル)
-
9
【Excel】BeforeCloseを毎回呼び出すには?
その他(Microsoft Office)
-
10
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
11
UserForm1.Showでエラーになります。
工学
-
12
ExcelでVBA実行後×(閉じる)ボタンでExcelが終了できなくなる。
Excel(エクセル)
-
13
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
14
エクセルの×ボタンを消したい
Excel(エクセル)
-
15
【VBA】エクセルを絶対に閉じれなくしたい。
Word(ワード)
-
16
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
17
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
18
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
19
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
20
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
VBAで多数のプログラムを一つの...
-
ASP.Net ラベルの内容をすぐに...
-
Excel VBA Application.caller...
-
C#プログラムで、ボタンをショ...
-
VBA CommandButtonの文字ずれ
-
VB.net でトグルボタンを実現し...
-
ボタンをマウスで押し続けたと...
-
[VB.net] ボタン(Flat)のEnable...
-
ボタンコントロールの改行(Win...
-
コマンドボタンやイメージにマ...
-
フォームの再読み込み
-
ユーザーフォームに別シートか...
-
アイコンとボタンの違い
-
MFC - ボタンの処理について
-
コマンドボタンやテキストボッ...
-
モーダルダイアログで発生する...
-
セルをマクロのボタンにしたい。
-
プロシージャからイベントをコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
セルをマクロのボタンにしたい。
-
コマンドボタンやイメージにマ...
-
VBA CommandButtonの文字ずれ
-
Excel VBA Application.caller...
-
フォームの再読み込み
-
VB.net でトグルボタンを実現し...
-
Excel マクロ 閉じるボタン
-
[VB.net] ボタン(Flat)のEnable...
-
VBAのボタンの位置が変わって困...
-
プロシージャからイベントをコ...
-
閉じると「+」になり開くと「-...
-
ボタンをマウスで押し続けたと...
-
C#プログラムで、ボタンをショ...
-
VBAで多数のプログラムを一つの...
-
Access VBA でデータペーストを...
-
アイコンとボタンの違い
-
ボタン
おすすめ情報
回答ありがとうございます。
>閉じるボタンの操作以外にも、…
そこまでは考えていませんでしたが、キャンセルできないのであれば仕方がありませんね
>マクロを利用する方法では…
関数を使っておりそこに文字を入力して使わせるのですが、何度も使用するので入力する範囲のみ保護をきっております。
開いたときににリセットをかけるような処理などは試してみたのですがPCのスペック不足により固まってしまうのでその手以外の方法を探してます。
(ボタンによるリセットもあるのですがそっちは正常に動くようです...)
回答ありがとうございます。
>Cancel = True
このように記述しますと、コマンドボタンで閉じれなくなります。
>Call ActiveWorkbook.Close(SaveChanges:=False)
これで保存ができなくなったのはいいのですが、どうやって閉じたらよいでしょうか?
どうしてもしょうがないのであればこの記述をし保存せず閉じるようにするのですが...
コマンドボタンにより閉じさせたいのです。
欲を言って申し訳ないですが何とかなりますでしょうか?