
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も見ています
-
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
コマンドボタンで「終了ボタン」を作りたい!
Excel(エクセル)
-
-
4
エクセルの×ボタンを消したい
Excel(エクセル)
-
5
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
6
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
7
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
8
'ユーザーフォーム右上隅の[×]ボタンを表示しない
Visual Basic(VBA)
-
9
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
10
エクセルVBA ブックを閉じる前に確認メッセージを表示したい
Excel(エクセル)
-
11
エクセルでファイルを閉じるボタンから閉じれないようにするには
Visual Basic(VBA)
-
12
VBAのリストボックスで、横スクロールバーを表示するには?
Visual Basic(VBA)
-
13
【Excel】BeforeCloseを毎回呼び出すには?
その他(Microsoft Office)
-
14
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
15
「Cancel = True」とはどういう意味でし
Word(ワード)
-
16
エクセルのvbaにて thisworkbookに記載のマクロを他のブックにマクロにて自動コピー出来る
Excel(エクセル)
-
17
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
18
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
19
ExcelでVBA実行後×(閉じる)ボタンでExcelが終了できなくなる。
Excel(エクセル)
-
20
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBAでオプションボタンによって...
-
閉じると「+」になり開くと「-...
-
VBA(エクセル)で自動的にボタン...
-
Excel VBA Application.caller...
-
VB.NET テキストボックスの入力...
-
ボタンをマウスで押し続けたと...
-
MouseDownとMouseMoveイベント...
-
セルをマクロのボタンにしたい。
-
バックスペース機能の作り方
-
ユーザーフォームに別シートか...
-
VBでのエラー音の消し方
-
テキストボックスの中身消去
-
コマンドボタンやイメージにマ...
-
senderに含まれているハンドル...
-
VBAのボタンの位置が変わって困...
-
チェックボックスで指定出来る...
-
エクセルVBAでユーザーフォーム...
-
VBA CommandButtonの文字ずれ
-
フォームから別のフォームを呼...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
Excel VBA Application.caller...
-
VBA CommandButtonの文字ずれ
-
[VB.net] ボタン(Flat)のEnable...
-
コマンドボタンやイメージにマ...
-
VBAのボタンの位置が変わって困...
-
VB.net でトグルボタンを実現し...
-
フォームの再読み込み
-
閉じると「+」になり開くと「-...
-
アイコンとボタンの違い
-
ボタン
-
Access VBA でデータペーストを...
-
セルをマクロのボタンにしたい。
-
C#プログラムで、ボタンをショ...
-
ユーザーフォームに別シートか...
-
Excel マクロ 閉じるボタン
-
VBAで多数のプログラムを一つの...
-
ボタンをマウスで押し続けたと...
-
ASP.Net ラベルの内容をすぐに...
おすすめ情報
回答ありがとうございます。
>閉じるボタンの操作以外にも、…
そこまでは考えていませんでしたが、キャンセルできないのであれば仕方がありませんね
>マクロを利用する方法では…
関数を使っておりそこに文字を入力して使わせるのですが、何度も使用するので入力する範囲のみ保護をきっております。
開いたときににリセットをかけるような処理などは試してみたのですがPCのスペック不足により固まってしまうのでその手以外の方法を探してます。
(ボタンによるリセットもあるのですがそっちは正常に動くようです...)
回答ありがとうございます。
>Cancel = True
このように記述しますと、コマンドボタンで閉じれなくなります。
>Call ActiveWorkbook.Close(SaveChanges:=False)
これで保存ができなくなったのはいいのですが、どうやって閉じたらよいでしょうか?
どうしてもしょうがないのであればこの記述をし保存せず閉じるようにするのですが...
コマンドボタンにより閉じさせたいのです。
欲を言って申し訳ないですが何とかなりますでしょうか?