
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(エクセル)
-
エクセルVBA ブックを閉じる前に確認メッセージを表示したい
Excel(エクセル)
-
コマンドボタンで「終了ボタン」を作りたい!
Excel(エクセル)
-
-
4
【VBAユーザーフォームで閉じるボタンを表示したくない】
Visual Basic(VBA)
-
5
【VBA】エクセルを絶対に閉じれなくしたい。
Word(ワード)
-
6
Excel VBAでブックを閉じる時、複数のブックが開いていると・・・。
Excel(エクセル)
-
7
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
8
エクセルでファイルを閉じるボタンから閉じれないようにするには
Visual Basic(VBA)
-
9
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
10
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
11
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
12
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
13
ExcelでVBA実行後×(閉じる)ボタンでExcelが終了できなくなる。
Excel(エクセル)
-
14
エクセル2010 グラフの軸の最大値最小値をセル参照する
Excel(エクセル)
-
15
'ユーザーフォーム右上隅の[×]ボタンを表示しない
Visual Basic(VBA)
-
16
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
17
エクセルの×ボタンを消したい
Excel(エクセル)
-
18
Excel VBAで、ユーザーフォームの値を、モジュールで使用したい。
Visual Basic(VBA)
-
19
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
20
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
フォームの再読み込み
-
VBAでオプションボタンによって...
-
VBA CommandButtonの文字ずれ
-
Access VBA でデータペーストを...
-
ユーザーフォームに別シートか...
-
ダウンロードダイアログをVB...
-
VB.NETでマウスクリックイベン...
-
C#で動的に作ったtextboxを消す。
-
ボタン
-
セルをマクロのボタンにしたい。
-
ボタンをマウスで押し続けたと...
-
VB.NETです ラジオボタンの文...
-
CommandButtonのCaptionを変化...
-
フォームから別のフォームを呼...
-
VBA IE ダウンロード ダイアロ...
-
チェックボックスで指定出来る...
-
ボタンの状態
-
プロシージャからイベントをコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
フォームの再読み込み
-
セルをマクロのボタンにしたい。
-
Access VBA でデータペーストを...
-
コマンドボタンやイメージにマ...
-
VBA CommandButtonの文字ずれ
-
プロシージャからイベントをコ...
-
VB.NETでマウスクリックイベン...
-
Excel VBA Application.caller...
-
VB.net でトグルボタンを実現し...
-
VBAのボタンの位置が変わって困...
-
VBAでオプションボタンによって...
-
Excel マクロ 閉じるボタン
-
VBS でユーザーからいくつかの...
-
VBA IE ダウンロード ダイアロ...
-
閉じると「+」になり開くと「-...
-
ボタンをマウスで押し続けたと...
-
ボタン
-
VBA でのボタンの移動について
おすすめ情報
回答ありがとうございます。
>閉じるボタンの操作以外にも、…
そこまでは考えていませんでしたが、キャンセルできないのであれば仕方がありませんね
>マクロを利用する方法では…
関数を使っておりそこに文字を入力して使わせるのですが、何度も使用するので入力する範囲のみ保護をきっております。
開いたときににリセットをかけるような処理などは試してみたのですがPCのスペック不足により固まってしまうのでその手以外の方法を探してます。
(ボタンによるリセットもあるのですがそっちは正常に動くようです...)
回答ありがとうございます。
>Cancel = True
このように記述しますと、コマンドボタンで閉じれなくなります。
>Call ActiveWorkbook.Close(SaveChanges:=False)
これで保存ができなくなったのはいいのですが、どうやって閉じたらよいでしょうか?
どうしてもしょうがないのであればこの記述をし保存せず閉じるようにするのですが...
コマンドボタンにより閉じさせたいのです。
欲を言って申し訳ないですが何とかなりますでしょうか?