• 締切済み

ExcelVBA読み取りパスワード削除して保存

以下、ご教授ください。 aaa.xlsとbbb.xlsがあります。 bbb.xlsには読み取りパスワードが設定されています。 aaa.xlsからVBAを使用し、bbb.xlsをパスワードを解除し、かつ読み取り専用で開きます。 ユーザーはパスワードを知らない状態です。 bbb.xlsをユーザーが編集し保存する際に、別名で保存のウィンドウが出るのですが、 パスワードはそのままで保存されてしまい、ユーザーは別名保存したExcelを開く事が できなくなってしまいます。 "Workbook_BeforeSave”で、保存する際にパスワードを変更するよう、 促すことはできたのですが、どうせならパスワードを削除した状態にしたいのです。 そういったことは可能でしょうか?

  • yama_x
  • お礼率35% (308/875)

みんなの回答

  • chie65535
  • ベストアンサー率43% (8519/19367)
回答No.2

追記。 書き忘れましたが、ユーザーが別名で保存したら、同様の処理をして、bbb.xlsにパスワードを付けて保存し直して下さい。 先ほどとまったく同じ処理で book1.SaveAs Filename:="bbb.xls", Password:="" を book1.SaveAs Filename:="bbb.xls", Password:="設定したいパスワード" に変えるだけです。 以下、蛇足ですが、Excel2010以降のみでしか出来ませんが、別の方法として Workbook_AfterSave で、ユーザーがセーブしたファイル名を取得して、先ほどの方法で「ユーザーが保存したファイルからパスワードを削除」できます。

  • chie65535
  • ベストアンサー率43% (8519/19367)
回答No.1

bbb.xlsを読み取り専用で開く前に Dim FObj As Object Dim book1 As Workbook 'bbb.xlsの「読み取り専用属性」を外す Set FObj = CreateObject("Scripting.FileSystemObject") FObj.GetFile("bbb.xls").Attributes = 0 'bbb.xlsのパスワードを解除して保存し直す Set book1 = Workbooks("bbb.xls") book1.SaveAs Filename:="bbb.xls", Password:="" book1.Close 'bbb.xlsに「読み取り専用属性」を付ける FObj.GetFile("bbb.xls").Attributes = 1 'オブジェクト開放 set FObj = Nothing の処理を入れれば、bbb.xlsのパスワードが消えます。

関連するQ&A

  • access保存時にVBAを実行

    Accessを保存するときにVBAを実行することはできるのでしょうか? 調べてもAccessは情報が少なくてこれといったものがありません ExcelのWorkbook_BeforeSaveみたいなイメージです

  • safari パスワードだけの保存

    OS10.9.2 safari7.0.3です。 レンタルサーバーのカートサービスにログインするためのパスワードの保存ができません。 ログイン画面からユーザー専用のアドレスが与えられており、パスワードを入力するだけなのですが、「パスワードの保存」の確認を聞いてきません。 環境設定の「パスワード」の項目にはユーザー名とともに管理されているようで、ユーザーIDのないパスワードのみの保存はできないのでしょうか。 どうぞよろしくお願いいたします。 ユーザーIDとパスワード両方を入力する場合は保存できております。

    • 締切済み
    • Mac
  • Excelで保存を中止する方法

    エクセルで教えてください。 Excelで上書き保存をクリックすると保存されます。 これを中止させたい場合どうしたらいいでしょうか。 VBAでWorkbook_BeforeSaveでCancel = Trueにして保存できないようにしました。 これで保存は出来なくなりました。 でも、閉じるをクリックすると「保存しますか」とのメッセージが出て「はい」をクリックすると、なんどでも同じメッセージが出ます。 「いいえ」をクリックすれば閉じますが、メッセージを出さないとか、「はい」をクリックしても閉じる方法はないでしょうか。 宜しくお願いします。

  • パスワードを保存するについて

    簡単な質問かもしれませんがご回答よろしくお願いいたします。 社内の共有のパソコンにログインする際にIDとパスワードを入力後「パスワードを保存する」にチェックを付けて、OKを押してしまいました。 しかし、違うユーザーでログインしたいのですが保存されているためか、ユーザーIDとパスワードのアラートが出てこなくなってしまったため何かと問題があり困っています。 パソコンに保存されてしまった、IDとパスワードを消す方法を知っている方がいらしたら教えていただけないでしょうか?よろしくお願いいたします。

  • パスワードの保存

    事務所内でネットワークHDDを使用しており、フォルダ毎に制限をかけてあります。 ユーザー名とパスワードを入れてフォルダが開けるようになっているのですが、「パスワードを保存する」にチェックを入れてしまいました。 そのため、パスワードの確認なしでフォルダの中身が見れてしまうようになってしまいました。 アクセスする度にパスワードを確認するように戻したいのですが、パスワードの保存を解除するにはどうしたらよいのでしょうか?? PCはWinXP、ネットワークHDDはBUFFALOのLinkstationです。

  • Excelの終了処理について

    Excel がMDIで複数のワークブックが動作しています。 そして、ExcelのXマークを押して終了する場合の処理についてです。 いま、aaa.xls とbbb.xlsが同時に起動しています。ExcelのXマークで全部閉じるボタンを押します。 aaa.xls のWorkbook_BeforeClose で終了処理をします。 その後bbb.xls(マクロなし)で、保存しますかのダイアログがでますが そこで、キャンセルを行った場合、aaa.xlsは終了せずに残ってしまいます。 すでに、aaa.xlsは終了処理で、メニューの戻しやデータのクリアがおこなわれているのでその後、整合性が合わなくなります。 Excelの終了処理は、どのような手順を踏めばよいのでしょうか。 基本的な質問で申し訳ありませんが、宜しくお願いします。

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

    ブックに保護をかけた状態で保存してあります。 共有状態にあり、マクロを有効にしてもらいたいので、 (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

  • EXECLの変更を保存せずブック強制的に閉じる

    お世話になります VISTAとXPのマクロで下記の様な事が出来るでしょうか? 条件(1) AAA.xls と BBB.xls 2つファイルを開き BBB.xls の ファイル作業後にこのファイル変更を保存せずに ブック強制的に閉じる このときAAA.xls は閉じない 条件(2) BBB.xls の ファイル作業後にこのファイル変更を保存せずに ブック強制的に閉じる このときアプリケーションも終了したい  (このときは他にEXECLファイルは開いていない) よろしくお願いいたします。

  • ExcelVBA ユーザーフォームのコードがない

    いつもお世話になっています。 Excel vbaで質問させてください。 あるExcelブック(test.xlsとします)を開くと、ユーザーフォーム(と思う)が表示されます。 (この時、Excelアプリケーションは「表示」されていてモーダルの状態です) ユーザーフォームで日付を選び、「これでOK」ボタンをクリックすると 新規ブックとして「text_0614.xls」が出来て、これが表示ブックとなります。 (元のtest.xlsは閉じられています) vbaコードの修正がしたくて、VBEから作業しようとしたところ ユーザーフォームモジュールも、標準モジュールも何も見当たりません。 Thisworkbookのイベントも何も書いてありません。 プロジェクトにパスワードがかかっているのかと思いましたが、もしそうだとしても プロジェクトウィンドウに、「フォーム」というフォルダは表示されると思いますし、 また、ダブルクリックしてもパスワードを求められることがありませんので パスワードがかかっているようには見えません。 これはExcelVBAのユーザーフォームじゃないのでしょうか?(VB?) または、もし、この「フォーム」フォルダごと、ユーザーに見せないやり方があるのでしょうか? どなたかご存知の方いらっしゃいましたらご教示ください! WinXP SP3 Excel2003 SP3 使用です。 どうぞよろしくお願いします。

  • WindowsXp「パスワードの保存」の解除の方法

    WindowsXp「パスワードの保存」の解除の方法について教えてください。 ファイルサーバ:Windows2000server アクティブディレクトリは使っていません。 クライアント:Windows Xp Pro 以上の環境で、ユーザがアクセスする際には、サーバで認証をしています。 ユーザ名は、個人毎に割り当てるのではなく、セクション毎に割り当てており、ユーザ毎にアクセスできるフォルダを制限しています。 ユーザのほとんどが、認証の際に「パスワードの保存」にチェックを入れてアクセスをしていますが、 人事異動で、管理者権限を持つユーザからリードオンリーのユーザへ異動になった人がいます。 その人の保存されているパスワードとユーザ名をクリアしたいのですが、どこをどうしたものか・・・ レジストリに保存されているのでしょうか? すいませんが、教えてください。

専門家に質問してみよう