• 締切済み

エクセル2003のブックの保存禁止について

お世話になります。 winXPでエクセル2003を利用しています。 ブックに修正等が有って終了しようとすると、ファイルを保存するか聞いてきます。この窓が開かずに、必ず、更新されずに元のままで終了できるようにするにはどうしたら良いでしょうか。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんばんは。 ご質問は、VBAの世界では、かなり昔からある、よく知られた質問の一つだと思います。 リードオンリーの方法もありますが、マクロが有効であるなら、以下のようなものは、パラドックスなコードの一つです。 しかし、それに対抗して、マクロをすべて不可にするとか、はたまた、クラックとするというご意見は、ここではナシにしてください。そうした揚げ足取りの方もいますが、あくまでも、通常の使用の範囲です。ただ、VBAには、VBAでの対処法はあります。しかし、それを公開したら、そうしたプロテクトはおしまいになってしまいます。これは、あくまでも、ユーザーに保存の選択しても、保存できないことを知らせずに閉じる方法です。名前を付けて保存も利きません。 保存できなくなると、自分で書いたマクロさえ保存できませんから、イースターエッグのように、シートのセルの中に、パスワードを設けます。 以下は、シート1のZ1 になっています。シート名は、オブジェクト名ですから、シートの名前を変えてもよいです。また、Z1 の場所は、日付などで変える方法も可能です。 '--------------------------------------- 'ThisWorkbook モジュールへ Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)   If Sheet1.Range("Z1").Value <> "psw" Then     Cancel = True     ThisWorkbook.Saved = True   Else     Application.EnableEvents = False     Application.Goto Sheet1.Range("A1")     ThisWorkbook.Save     Sheet1.Range("Z1").Clear     Application.EnableEvents = True   End If End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean)   ThisWorkbook.Saved = True End Sub なお、 Application.Goto Sheet1.Range("A1") シート1のA1に飛ぶのは、パスワードの設定場所などの痕跡さえ残さないためです。ここは、Sheet1.Range("A1").Select は使えません。

masa21s
質問者

お礼

ありがとうございました参考になりました。 又よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

(1)読み取り専用で開く  ・メニューから"開く"を選択。  ・ファイルを右クリックして"読み取り専用で開く"を選択 (2)書き込みパスワードを設定する。  ・名前を付けて保存で、保存先指定、ファイル名指定画面の   メニューにあるツールから全般オプションを選択。  ・書き込みパスワードを設定する。 (3) (2)の"画面で読み取り専用を推奨する"にチェックを入れておけば   (1)の操作をしなくてもファイルをダブルクリックすると読み取り   専用で開くか聞いてきます。 なお、読み取り専用で開いた場合には、保存しようとすると、 "名前を付けて保存"扱いになります。 こんなところでしょうか。

masa21s
質問者

お礼

ありがとうございました参考になりました。 又よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

http://okwave.jp/qa2893037.html と同じ質問かな。#1ご回答などどうですか。

全文を見る
すると、全ての回答が全文表示されます。
  • spnlight
  • ベストアンサー率46% (15/32)
回答No.2

>ブックに修正等が有って終了しようとすると 修正が有って保存せずに閉じると、修正された内容が無くなりますので、必ず保存のダイアログが開きます。 >更新されずに元のままで終了 それでは、何の為に修正してるのですか?(意味わからん) 保存せずに誤って閉じるボタン等で閉じてしまった時、保存のダイアログが出なくて終了してしまう方が問題あると思います。 もし、修正して印刷等するけど、保存はしないよって言うのなら、いいえを1回クリックするだけで事は足りると思います。 読み取り専用にしても、いいえを押さない限り、保存場所指定の画面が開きますし・・・ 原本で更新されたらまずいと言うので有れば、1さんのやり方で良いと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • NIWAKA_0
  • ベストアンサー率28% (508/1790)
回答No.1

>この窓が開かずに というやり方は知りませんけど エクスプローラーからファイルのプロパティを開いて[読み取り専用]にチェックを入れるか、 エクセルで[ファイル]→[名前をつけて保存]→[ツール]→[全般オプション]で [書き込みパスワード]を設定するかすれば、不用意に原本に上書きをしてしまうことは避けられると思います。 でもそんなことをするよりも、原本は原本で作業で使うファイルとは別にどこかに保存しておいた方がいろいろ安心だと思いますよ。

masa21s
質問者

お礼

ありがとうございました参考になりました。 又よろしくお願いいたします。

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

関連するQ&A

  • EXCELブックの保存前の状態への回復

    EXCEL2002、SR-1を、2つのEXCELブックを共有で 使用しています。 EXCELが強制終了してしまい、EXCELを再度起動して 2つの修正されたブックを保存しようとしたところ 名前を間違えてしまい、別のEXCELブックのファイル名で 保存してしまいました。結局、同じ内容で別名のブックが できてしまいました。 違う名前で保存されてしまったEXCELブックを、元の内容 (保存前の状態)に復旧させることができるのでしょうか? もしそのような方法をご存知であれば、教えてください。 よろしくお願いします。

  • エクセルブックが保存できない

    エクセル2000および2003で、各シート5万個程度の式・値が入ったブック(外部参照は約一万個、シート数は2枚、大きさ約8メガバイト)が突然保存できなくなりました。 保存しようとすると「応答なし」の状態になり、エクセルを強制終了するよりほかなくなります。 それ自体をみると、単にハードの力量不足にしかみえないのですが、メモリは1GBつんでますし、もっと大きなブックもふつうに処理できていますので、別に原因がありそうです。 ただ、ブックを開くことはできるので、ファイルが壊れているわけではなさそうです。 サポートページをみてみましたが、ちょっとわかりませんでした。 どなたかこうした症状に心当たりのある方、よろしくお願いいたします。

  • ExcelのBookが開かなくて困っています

    データベースにしているExcelのBookがあります。 先ほどデータを入力し、保存して終了しました。 もう一度内容の確認のため開けようとしましたが警告のメッセージが出てきて開きません。 (メッセージの内容) (1)MicrosoftOfficeExcelのセキュリティに関する通知 警告:このファイルを開こうとしたときに、Officeファイル検証機能によって問題が検出されました。このファイルを開くのは危険であり、悪意のあるユーザーに対し、お使いのコンピューターであらゆる操作の実行を許す可能性があります。-送信者に連絡して、ファイルの保存と送信のやり直しを依頼してください。ファイルの送信者に直接または電話で確認すると、より確実です。 (2)'DataBase2xls'にアクセスできません。ファイルが破損しているか、応答しないサーバーがあるか、読み取り専用に設定されています。 (3)'DataBase2xls'には読み取れない内容が含まれています。このブックの内容を回復しますか?ブックの発行元が信頼できる場合は、[はい]をクリックしてください。 [はい]を選択した後、一部のデータが消失したBookがでてきました。 データベースがこのような状態になっているとは露知らず、 バックアップの方にもこの状態のものを上書き保存してしまいました。 修正あるいはデータを過去に遡らせるなどして元の状態にしたいのですが その方法をご教示下さい。 PCは家庭用のものでインターネットがつながっている程度のものです。

  • Excel 同一プロシージャー名で保存後起動しない

    ExcelのVBEの標準シートに 同じ名前のプロシージャーを作成したまま保存して終了してしまいましたが、 このExcelブックを立ち上げてようとしてもExcelアプリケーションは起動しますが、 いつまで経ってもこのExcelブックが起動しません。 プロシージャー名を修正して保存し直せばこの問題は解決すると思われますが、 どのようにすればこのExcelブックを起動することができるでしょうか。 (Windows10,Excel2007)

  • エクセル2010 保存できない

    エクセルで作成したリストを更新して使用しています 新しい情報に書き換えていざ保存を押した時に通常通り保存できず 保存前の情報にもどります 何か良からぬ設定をしてしまっているのでしょうか? 【Microsoft Excelは動作を停止しました オンラインで解決策を確認してプログラムを終了します プログラムを終了します】 と表示されどちらを選んでも元の情報に戻ります 今あるファイルデータが更新保存できればよいのですが何が原因なのでしょうか?

  • Excelでブックを値保存したい

    10のシートからなるブックがあるとします。 それぞれのシートには、関数やマクロが設定されています。 このブックを使って、すべての関数、マクロ計算が終了したあとで、結果のみのブックを作りたいのですが、どのようにすればよいでしょうか? ・元のブックには、関数、マクロを含むものとします。 ・最終的にほしいブックは  ・関数・マクロを含まない  ・罫線は元と同じ  ・印刷範囲、改ページや見出し、余白などの設定も元と同じ   よろしくお願いします。 ちなみにEXCELのバージョンは2010ですが、できれば2003でも使用可能にしたいです。

  • エクセルでシートを新規Bookにコピーして保存

    いつもお世話になっております。 毎回お世話になっております。 過去にも似たような質問をさせていただいてその時々の要求は解決しているのですが、悲しいかな各々のVBAが組み合わせられません。(というレベルです) やりたいことは、特定のBookのアクティブシートを別の新規BookのSheet1にコピーして数値で貼り付ける。➣ここまではできました。 問題はこの、新規Bookを指定のセル(D5とA1)の内容をファイル名にして指定のフォルダに保存する。が出来ません。 1.新規BookでVBAを動かしたいのですが、複数のPCで使う時にどこに記録するのかわかりません。 2.コピーして数値で貼り付けから保存までのVBAは元のシートから直接(1回の操作)でも、新規Book1を表示させてからの操作でもどちらでも良いです。 3.Book1を保存するファイル形式はVBAが含まれないxlsxが好ましいです。(メールで送信するので)

  • エクセル ブック(マクロを含む)を保存してとじると、また開きます。

    ブックに保護をかけた状態で保存してあります。 共有状態にあり、マクロを有効にしてもらいたいので、 (1)開くときに保護解除 (2)保存のときに、保護をかけて保存後、(まだ閉じるとは限らないので)保護解除 ということをやろうとし、以下のように書きました。 エクセルごとではなく、このファイルのみ終了しようとすると、 開いた後と上書保存後に保護を解除する為、 ファイルを終了する時には必ず「変更を保存しますか?」と訊かれ、 その時に「はい」を選択すると、一度はそのファイルが終了するのですが、 すぐに マクロを含むファイルを開くときに出るメッセージ「セキュリティ警告マクロ マクロ有効 マクロ無効 詳細」が出て、また開こうとします。 保存「いいえ」を選択すると、普通に終了します。 エクセルごとを終了すれば保存「はい」にしても、普通に終了します。 このファイルのみ終了する時、保存の確認で、「はい」を選び、普通に終了するには、何を直したらよいでしょうか? その前に、根本的に間違ってたりしますでしょうか・・・。 よろしくお願いします。 ThisWorkbookに、 Private Sub Workbook_Open() ActiveSheet.Unprotect Password:="(パスワード)" End Sub Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ActiveSheet.Protect Password:="(パスワード)" Application.OnTime Now, "保護解除" End Sub 標準モジュールに、 Sub 保護解除() ActiveSheet.Unprotect Password:="(パスワード)" End Sub

  • エクセルのシートの保護、ブックの保護について

    エクセルのシートの保護、ブックの保護について いつもお世話になっております。 他のエクセルファイルとリンクしているエクセルのファイルを開いたときに、リンクの更新が表示されます。 ファイルを開いたときにリンクの更新がされないようにしたいのですが、シートの保護、ブックの保護でリンクが更新されないようにはできないでしょうか? それとも、リンクそのものを解除するしか方法がないのでしょうか…。

  • EXCELブックを保存しないで終了

    EXCEL2000で"A"というブックから"B"というブックを マクロのVBAから開きます。 両方のシートが開いた状態から,"B"のマクロより 両方のブック共に保存しないで、EXCEL自体終了するマクロ を"B"側に下のような感じで作成しました。 -------- EXCEL終了処理 ------------------ Application.DisplayAlerts = False ThisWorkbook.Saved = False Application.Quit ---------------------------------------- これで終了しようとすると、「"B"のブックを保存しますか?」というメッセージが表示されてしまいます。終了前のマクロ処理の中で"B"ブックを変更しているので、このようなメッセージが表示されると思うのですが、 Application.DisplayAlerts = False 命令は利かないのですか? どなたか教えて下さい。宜しくお願い致します。

専門家に質問してみよう