• ベストアンサー

エクセルのツールバーの上書き保存のアイコンを無効にしたい

いつもお世話になります。初心者ですのでよろしくお願いします。 複数の人で使用する共有のエクセルファイルがあります。 このファイルはデータ入力し印刷する目的のものですので、使用後上書き保存をさせたくないのですが、誤ってツールバーの上書き保存のアイコンを押してしまう人が何人もいます。 そこで、ツールバーの上書き保存のアイコンを押しても保存しないように設定したいのですが、できますでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答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

haasan99
質問者

お礼

Wendy02さま、ご親切な回答をいただき大変ありがとうございました。 私自身、とても勉強になりました。 できることなら、郷土の名産でもお礼に差し上げたいところですが、ここはポイントでご了承ください。m(-.-)m

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答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 というキーを入れた時だけ、保存できます。キーは、ワークシート上には残りません。キーの入れる場所は、お好きなところに。 この設定自体が分らなくなったら、マクロを使えないように、セキュリティを「上」にしてください。

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答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 で、画面を閉じ保存します。このブックを再びオープンしたときには、アイコンは使えなくなっています。閉じるとまた元に戻ります。 このブックを開けている間は、上書き保存のアイコンは、灰色になって使えません。 ただし、メニューのファイルから行うことはできますから、保存自体が出来ないようになっているわけではありません。 他にも、読み取り専用ではなく、保存時だけ、保存はされないようにも出来ます。もし、よかったら、そちらもお教えします。

haasan99
質問者

お礼

ご回答ありがとうございました。 おっしゃるとおり、ツールバーの上書き保存のアイコンが灰色になって使えなくなりました。これだと私の希望どおりです。 ただ、コードの上半分だけでいいみたいです。全部コピーすると「End Withに対するWithがありません」のエラーになりました。初心者ですので何のことやらわかりません(+.+) もし、よろしければ、保存時だけ、保存はされないような方法も教えていただければ幸いです。

すると、全ての回答が全文表示されます。
  • rokusan18
  • ベストアンサー率42% (6/14)
回答No.3

こんにちは。 操作は簡単ですよ。 シートを保護するには上書き保存用のパスワード設定をするのが良いかと思います。 手順です。 設定したいエクセルシートを開きます。    ↓ ツールバーのファイルから名前をつけて保存を指定。    ↓ その際にツールバー右にあるツールから全般オプションを選択。    ↓ 保存オプションのウインドが開き書き込みパスワードの設定が出来ます。 これで上書きからシートを保護できると思います。

haasan99
質問者

お礼

ご回答ありがとうございます。参考になりました。 できればパスワードを利用しない方法があればと思います。

すると、全ての回答が全文表示されます。
  • komet163
  • ベストアンサー率51% (22/43)
回答No.2

VBA でブックにそういった機能を盛りこむことはできますが、 ファイルのプロパティを開いて、「読み取り専用」に設定するのが普通です。

haasan99
質問者

お礼

ご回答ありがとうございます。 できれば保存のダイアログは出したくないのですが…

すると、全ての回答が全文表示されます。
  • muushuke
  • ベストアンサー率39% (151/387)
回答No.1

方法その1 そのファイルを読取専用の属性にする。 ファイルを右クリックし、プロパティを開きます。 読取専用というチェックボックスがありますのでこれにチェックを入れます。 すると上書き保存しようとしても名前を付けて保存のダイアログが出るので、もとのファイルが上書きされることはありません。 方法その2 ファイルをテンプレートにする。 そのファイルを開き、名前を付けて保存する。 そのときにファイルの種類をテンプレート(*.xlt)にする。 すると上書き保存しようとしたときにやはり名前を付けて保存のダイアログが出ますので上書きされることはありません。 直接の解決方法ではありませんが参考になればと思います。

haasan99
質問者

お礼

早速のご回答ありがとうございます。 できれば保存のダイアログも出したくないのですが… 参考にさせていただきます。

すると、全ての回答が全文表示されます。

関連するQ&A