
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(エクセル)
-
【Excel VBA】マクロで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
ExcelでVBA実行後×(閉じる)ボタンでExcelが終了できなくなる。
Excel(エクセル)
-
12
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
13
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
14
フォントの大きさ
Visual Basic(VBA)
-
15
フォームテキストボックスの表示設定
Excel(エクセル)
-
16
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
17
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
18
'ユーザーフォーム右上隅の[×]ボタンを表示しない
Visual Basic(VBA)
-
19
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
20
【VBA】エクセルを絶対に閉じれなくしたい。
Word(ワード)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
セルをマクロのボタンにしたい。
-
Excel VBA Application.caller...
-
ユーザーフォームに別シートか...
-
VBA ユーザーフォームラベルキ...
-
[VB.net] ボタン(Flat)のEnable...
-
ユーザフォーム AfterUpdate処...
-
visualC++6.0でボタン上にマウ...
-
押しっぱなしの処理
-
ボタンの表示を改行表示したい
-
コマンドボタンやイメージにマ...
-
閉じると「+」になり開くと「-...
-
VB.NETでマウスクリックイベン...
-
Excel マクロ 閉じるボタン
-
MFCでのボタン配置
-
VBA CommandButtonの文字ずれ
-
Access VBA でデータペーストを...
-
VB.NETのWebアプリで、ボタンの...
-
VB6でマルチスレッド?
マンスリーランキングこのカテゴリの人気マンスリー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)
これで保存ができなくなったのはいいのですが、どうやって閉じたらよいでしょうか?
どうしてもしょうがないのであればこの記述をし保存せず閉じるようにするのですが...
コマンドボタンにより閉じさせたいのです。
欲を言って申し訳ないですが何とかなりますでしょうか?