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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- その他(Microsoft Office) windows10で作業を終了する際の「保存しますか はい いいえ」を表示させずに自動で保存する方法 6 2023/03/15 11:29
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 12:00
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Excel(エクセル) beforecloseの中からの抜け出し方 1 2023/08/10 18:01
- その他(コンピューター・テクノロジー) PC利用中に勝手に起動する窓を消し去る方法を教えて下さい。 1 2023/05/08 16:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
このQ&Aを見た人はこんなQ&Aも見ています
-


VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-


【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-


コマンドボタンで「終了ボタン」を作りたい!
Excel(エクセル)
-
-
4

VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
5

エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
6

VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
7

エクセルでファイルを閉じるボタンから閉じれないようにするには
Visual Basic(VBA)
-
8

エクセルVBA ブックを閉じる前に確認メッセージを表示したい
Excel(エクセル)
-
9

【Excel】BeforeCloseを毎回呼び出すには?
その他(Microsoft Office)
-
10

エクセルの×ボタンを消したい
Excel(エクセル)
-
11

メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
12

'ユーザーフォーム右上隅の[×]ボタンを表示しない
Visual Basic(VBA)
-
13

UserForm1.Showでエラーになります。
工学
-
14

ExcelでVBA実行後×(閉じる)ボタンでExcelが終了できなくなる。
Excel(エクセル)
-
15

Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
16

Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
17

ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
18

フォントの大きさ
Visual Basic(VBA)
-
19

エクセルVBAで Cancel=Trueの使い方
Excel(エクセル)
-
20

フォームテキストボックスの表示設定
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
Excel VBA Application.caller...
-
VBAで多数のプログラムを一つの...
-
ボタンをマウスで押し続けたと...
-
delphiでボタンを押せなくしたい
-
他のアプリケーションとの連携
-
Excel VBA実行中にワークシート...
-
C♯初心者で、四則演算の電卓を...
-
マルチページで現在開いている...
-
TextBoxでEnterキーを押すと、...
-
Excel マクロ 閉じるボタン
-
フォームの再読み込み
-
C#でSendInputを使ったサンプル...
-
senderに含まれているハンドル...
-
フォーカスについて
-
キーボード入力で、各ボタンに...
-
VBA IE ダウンロード ダイアロ...
-
タイマーでアラームを作りたい
-
ボタン(コントロール)を丸くしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
セルをマクロのボタンにしたい。
-
VBA CommandButtonの文字ずれ
-
Excel VBA Application.caller...
-
C#プログラムで、ボタンをショ...
-
フォームの再読み込み
-
コマンドボタンやイメージにマ...
-
[VB.net] ボタン(Flat)のEnable...
-
Excel マクロ 閉じるボタン
-
VBAで多数のプログラムを一つの...
-
ボタンをマウスで押し続けたと...
-
VB.net でトグルボタンを実現し...
-
プロシージャからイベントをコ...
-
アイコンとボタンの違い
-
VBAのボタンの位置が変わって困...
-
閉じると「+」になり開くと「-...
-
[Excel VBA]コマンドボタンの入...
-
ASP.Net ラベルの内容をすぐに...
おすすめ情報

















回答ありがとうございます。
>閉じるボタンの操作以外にも、…
そこまでは考えていませんでしたが、キャンセルできないのであれば仕方がありませんね
>マクロを利用する方法では…
関数を使っておりそこに文字を入力して使わせるのですが、何度も使用するので入力する範囲のみ保護をきっております。
開いたときににリセットをかけるような処理などは試してみたのですがPCのスペック不足により固まってしまうのでその手以外の方法を探してます。
(ボタンによるリセットもあるのですがそっちは正常に動くようです...)
回答ありがとうございます。
>Cancel = True
このように記述しますと、コマンドボタンで閉じれなくなります。
>Call ActiveWorkbook.Close(SaveChanges:=False)
これで保存ができなくなったのはいいのですが、どうやって閉じたらよいでしょうか?
どうしてもしょうがないのであればこの記述をし保存せず閉じるようにするのですが...
コマンドボタンにより閉じさせたいのです。
欲を言って申し訳ないですが何とかなりますでしょうか?