VBA100本ノック 80本目:読み取り専用で保存できないブックにする
ブックを読み取り専用に設定し、かつ、上書き保存も名前を付けて保存も出来ないように設定する問題です。
ツイートでの見やすさを考慮して、ブック・シート指定等を適宜省略しています。
出題
このブックは変更してほしくないので、以下の動作にしたい。
・開かれたら読み取り専用に設定
・上書き保存や名前を付けて保存をしようとしたら、保存せずに強制的にブックを閉じる
・閉じる時の保存確認メッセージも出さない
※VBA作成中は気を付けて!
読み取り専用による、以下のメッセージが出てしまうのは構いません。

頂いた回答
解説
閉じる・保存は、BeforeCloseとBeforeSaveです。
引数CancelにTrueを入れると、そのイベントはキャンセルされます。
Saved = Trueこれは保存後に変更されていない状態にします。
Private Sub Workbook_Open()
Me.ChangeFileAccess xlReadOnly
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Me.Saved = True
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
Me.Saved = True
If Application.Workbooks.Count > 1 Then
Me.Close SaveChanges:=False
Else
Application.Quit
End If
End Sub
Sub 開発保存用()
On Error Resume Next
Application.EnableEvents = False
Me.ChangeFileAccess xlReadWrite
Me.Save
End Sub
イベントを入れた後では、保存できなくて何度か書き直した人もいるかも知れません、ゴメンナサイ。
一度経験しておけば実際に必要になった時に役立つと思います。
補足はありません。
補足
サイト内関連ページ
同じテーマ「VBA100本ノック」の記事
74本目:1シート複数表をDB形式に変換
75本目:ログインフォームの作成
76本目:ボタンの表示名の位置へ移動
77本目:シート挿入イベント
78本目:グラフのデータ範囲拡張
79本目:Wordにセル範囲を図として挿入
80本目:読み取り専用で保存できないブックにする
81本目:全フィルターの絞り込解除
魔球編:組み合わせ問題
魔球編:閉領域の塗り潰し
迷宮編:巡回セル問題
新着記事NEW ・・・新着記事一覧を見る
VBA100本ノック 81本目:全フィルターの絞り込解除|VBA練習問題(2月3日)
VBA100本ノック 迷宮編:巡回セル問題|VBA練習問題(2月2日)
VBA100本ノック 80本目:読み取り専用で保存できないブックにする|VBA練習問題(2月2日)
VBA100本ノック 79本目:Wordにセル範囲を図として挿入|VBA練習問題(2月1日)
VBA100本ノック 78本目:グラフのデータ範囲拡張|VBA練習問題(1月30日)
VBA100本ノック 77本目:シート挿入イベント|VBA練習問題(1月29日)
VBA100本ノック 76本目:ボタンの表示名の位置へ移動|VBA練習問題(1月27日)
VBA100本ノック 75本目:ログインフォームの作成|VBA練習問題(1月26日)
VBA100本ノック 74本目:1シート複数表をDB形式に変換|VBA練習問題(1月25日)
VBA100本ノック 73本目:新規ブックにボタン作成しマクロ登録|VBA練習問題(1月23日)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門
- ホーム
- マクロVBA入門編
- VBA100本ノック
- 80本目:読み取り専用で保存できないブックにする
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。