![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
No.6ベストアンサー
- 回答日時:
haasan99 さまへ
Wendy02 です。すみません。早くも#5の修正です。
キーの入り口が消えても、出ていたままになるので、それは、ちょっと格好が悪いです。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ThisWorkbook.Worksheets("Sheet1").Range("A100").Value = 123 Then
Application.EnableEvents = False
Range("A1").Select '←ここを加えます。
ThisWorkbook.Save
Application.EnableEvents = True
ThisWorkbook.Worksheets("Sheet1").Range("A100").ClearContents
Exit Sub
End If
Application.DisplayAlerts = False
Cancel = True
Application.DisplayAlerts = True
End Sub
それから、上記のコートがあっても、保存したという擬似情報は必要です。右上の「×」ボタンの時に、ないと都合が悪いです。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub
Wendy02さま、ご親切な回答をいただき大変ありがとうございました。
私自身、とても勉強になりました。
できることなら、郷土の名産でもお礼に差し上げたいところですが、ここはポイントでご了承ください。m(-.-)m
No.5
- 回答日時:
こんにちは。
>ただ、コードの上半分だけでいいみたいです。全部コピーすると「End Withに対する>Withがありません」のエラーになりました。
ごめんなさい。
End With は、余分でした。
ちょっと、別の組み合わせも考えていましたもので、残し忘れしてしまいました。
>もし、よろしければ、保存時だけ、保存はされないような方法も教えていただければ幸いです。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Standard").FindControl(, 3).Enabled = True
ThisWorkbook.Saved = True '←これを加える
End Sub
ThisWorkbook.Saved = True
意味は、保存しました、という擬似情報を与えることで、保存しないようにすることです。
次は、隠し技ですが、
ある一定の条件以外は、保存そのものが出来ないようにしてしまいます。100%保存できないと、設定も保存できなくなるので、一定のキーワードを入れれば、保存できるわけです。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ThisWorkbook.Worksheets("Sheet1").Range("A100").Value = 123 Then
'↑ここのキーコードを入れます。例:Sheet1 A100 に 123 と入れる。
Application.EnableEvents = False
ThisWorkbook.Save
Application.EnableEvents = True
ThisWorkbook.Worksheets("Sheet1").Range("A100").ClearContents
Exit Sub
End If
Application.DisplayAlerts = False
Cancel = True
Application.DisplayAlerts = True
End Sub
もしも、プロジェクトをロックしたら、設定した人しか保存方法は分りません。読み取り専用になっていません。ちょうど、ExcelのEasterEggのカギに似ています。(未だ、私は開け方を知りませんが。)
前回のThisWorkbook の場所にこのコード(Private ~ End Sub)を貼り付けます。
使い方:
上記では、Sheet1のA100 に、123 というキーを入れた時だけ、保存できます。キーは、ワークシート上には残りません。キーの入れる場所は、お好きなところに。
この設定自体が分らなくなったら、マクロを使えないように、セキュリティを「上」にしてください。
No.4
- 回答日時:
こんにちは。
以下のようにしてみたらいかがでしょうか?
Alt + F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。
左上側にプロジェクトエクスプローラの窓の中に、ThisWorkbook があったら、それをダブルクリックして、開けます。もし、窓が出ていないようでしたら、Ctrl + R を押すと通常左側に出てきます。
そして、以下のコードを貼り付けます。
Private Sub Workbook_Open()
Application.CommandBars("Standard").FindControl(, 3).Enabled = False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Standard").FindControl(, 3).Enabled = True
End With
End Sub
再び、Alt + F11 で、画面を閉じ保存します。このブックを再びオープンしたときには、アイコンは使えなくなっています。閉じるとまた元に戻ります。
このブックを開けている間は、上書き保存のアイコンは、灰色になって使えません。
ただし、メニューのファイルから行うことはできますから、保存自体が出来ないようになっているわけではありません。
他にも、読み取り専用ではなく、保存時だけ、保存はされないようにも出来ます。もし、よかったら、そちらもお教えします。
ご回答ありがとうございました。
おっしゃるとおり、ツールバーの上書き保存のアイコンが灰色になって使えなくなりました。これだと私の希望どおりです。
ただ、コードの上半分だけでいいみたいです。全部コピーすると「End Withに対するWithがありません」のエラーになりました。初心者ですので何のことやらわかりません(+.+)
もし、よろしければ、保存時だけ、保存はされないような方法も教えていただければ幸いです。
No.3
- 回答日時:
こんにちは。
操作は簡単ですよ。
シートを保護するには上書き保存用のパスワード設定をするのが良いかと思います。
手順です。
設定したいエクセルシートを開きます。
↓
ツールバーのファイルから名前をつけて保存を指定。
↓
その際にツールバー右にあるツールから全般オプションを選択。
↓
保存オプションのウインドが開き書き込みパスワードの設定が出来ます。
これで上書きからシートを保護できると思います。
No.1
- 回答日時:
方法その1
そのファイルを読取専用の属性にする。
ファイルを右クリックし、プロパティを開きます。
読取専用というチェックボックスがありますのでこれにチェックを入れます。
すると上書き保存しようとしても名前を付けて保存のダイアログが出るので、もとのファイルが上書きされることはありません。
方法その2
ファイルをテンプレートにする。
そのファイルを開き、名前を付けて保存する。
そのときにファイルの種類をテンプレート(*.xlt)にする。
すると上書き保存しようとしたときにやはり名前を付けて保存のダイアログが出ますので上書きされることはありません。
直接の解決方法ではありませんが参考になればと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Word(ワード) officeの自動保存について教えてください 2 2023/06/18 09:11
- Excel(エクセル) エクセル2019でPDFファイル名に枝番号をつけたい。 アクティブワークシートを印刷した後の処理とし 4 2023/06/06 21:00
- Excel(エクセル) エクセルのAltを押すと「自動保存」「上書き保存」・・・に白抜きの「1」「2」・・・が出る。 2 2023/08/11 11:39
- Windows Vista・XP PC パソコンのダウンロードについて 1 2022/04/26 16:27
- Windows 10 ネットからファイルをデスクトップにダウンロードする際、既存のファイルの並びが崩れてしまう 4 2022/04/19 08:20
- Windows 10 デスクトップにファイルを保存すると既存のファイルアイコンの列に割り込むように保存されて困ってます 2 2022/04/25 19:00
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- その他(Microsoft Office) Excel、Wordのファイル 3 2023/05/07 04:58
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルを上書き保存したのに...
-
エクセルでCSVファイルとして保...
-
エクセル文書を保存したらメモ...
-
いきなりPDFでPDFファイルを開...
-
Illustratorファイルに読み取り...
-
マクロ VBA ファイル名を連番...
-
開いてるファイル(エクセル等)...
-
「変更を保存しますか?」と聞...
-
エクセル・マクロ(VBA)で、指定...
-
エクセル 更新していないのに...
-
エクセルでVBAを使用して1分毎...
-
メール添付されているファイル...
-
エクセル2019でPDFファイル名に...
-
エクセルで保存する時にメッセ...
-
Excel画面の自動更新 Excelファ...
-
マクロVBA特定フォルダーに次々...
-
「名前を付けて保存」ができな...
-
エクセル 連動して自動で開く
-
ピボットテーブルの更新ができない
-
エクセル表のCSV化ができない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを上書き保存したのに...
-
いきなりPDFでPDFファイルを開...
-
エクセル文書を保存したらメモ...
-
Excel画面の自動更新 Excelファ...
-
エクセルでVBAを使用して1分毎...
-
エクセル・マクロ(VBA)で、指定...
-
ピボットテーブルの更新ができない
-
メール添付されているファイル...
-
エクセルでCSVファイルとして保...
-
エクセル 更新していないのに...
-
Illustratorファイルに読み取り...
-
csvファイルを上書き保存でカン...
-
開いてるファイル(エクセル等)...
-
メールソフト「サンダーバード...
-
エクセルがwindows終了時に未保...
-
マクロVBA特定フォルダーに次々...
-
EXCELで同一名のファイルがある...
-
マクロ VBA ファイル名を連番...
-
エクセル表のCSV化ができない
-
「変更を保存しますか?」と聞...
おすすめ情報