• ベストアンサー

エクセルで複数ファイルに同一のパスワードをまとめて設定したいです

同一のフォルダにある複数のファイル(600個位)に同一の書き込みパスワードを設定したいのですが、まとめてやれる方法はないでしょうか?どうもそういうソフトウェアがありそうなことはわかったのですが、有料のものしか見つけられませんでした(会社のインターネットにブロックがかかっているせいかもしれません)。できればフリーソフトで手に入れたいのですが、何かよいものをご存知の方いらっしゃいますか? もちろん、フリーソフト以外でもマクロやその他の方法でも何かいい方法があれば教えて欲しいです。 はじめは1個1個設定していたのですが、100個を越したあたりで吐き気がしてきて、もう少し楽な方法があるかもと思い探しております。お知恵を貸してください。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

No3のmerlionXXです。 よく考えたらもう100個も同一の書き込みパスワードを設定しているのですよね。 だったら、いまさらフォルダーを分けるのも大変でしょうから、同一であれば書き込みパスワードが設定されたBOOKがあってもOKのように変えてみました。 Const myPass = "pass" の部分で "" の中のpassをほんとのパスワードに換えて実行してみてください。 Sub TEST02() Const myPass = "pass" Application.ScreenUpdating = False '画面更新を停止 On Error GoTo line 'エラーの場合エラー処理へ飛ぶ myfdr = ThisWorkbook.Path 'このBOOKのフォルダー名取得 fname = Dir(myfdr & "\*.xls") 'フォルダ内のExcelブックを検索 Do Until fname = Empty '全てを検索 If fname <> ThisWorkbook.Name Then 'ブック名がこのブックの名前でなければ Set wb = Workbooks.Open(myfdr & "\" & fname, WriteResPassword:=myPass) 'そのブックを開き、wbとする。 Application.DisplayAlerts = False '警告停止 wb.SaveAs Filename:=fname, WriteResPassword:=myPass '書き込みパスワード設定 wb.Close '閉じる Application.DisplayAlerts = True '警告停止解除 n = n + 1 'ブック数をカウント End If fname = Dir 'フォルダ内の次のExcelブックを検索 Loop '繰り返す Application.ScreenUpdating = True '画面更新停止を解除 MsgBox n & "件のブックを処理しましました。", vbInformation, " ( ̄ー ̄)v " Exit Sub line: 'エラー処理 Application.ScreenUpdating = True '安全策 Application.DisplayAlerts = True '安全策 MsgBox "予期せぬ事由により" & n + 1 & "件目で失敗し、中断しました。", vbCritical, " Σ( ̄ロ ̄lll) " End Sub

rurumiko
質問者

お礼

できました!!! 感謝、感謝、感謝です。 助かりました。あんなに苦労してたのに15分くらいで終わりました。 今回はコピーしてすぐに使ってしまいましたが、後でじっくりコードを見て勉強します。回答ありがとうございました。

その他の回答 (3)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

ためしに作って見ました。 このマクロを実装したブックを対象とするフォルダー内に保存してから実行してみてください。ただし既に読取専用に設定されたBOOKがあると失敗しますのでフォルダー内は設定されていないブックだけにしてください。 Sub TEST01() Application.ScreenUpdating = False '画面更新を停止 On Error GoTo line 'エラーの場合エラー処理へ飛ぶ myfdr = ThisWorkbook.Path 'このBOOKのフォルダー名取得 fname = Dir(myfdr & "\*.xls") 'フォルダ内のExcelブックを検索 Do Until fname = Empty '全てを検索 If fname <> ThisWorkbook.Name Then 'ブック名がこのブックの名前でなければ Set wb = Workbooks.Open(myfdr & "\" & fname) 'そのブックを開きwbとする。 Application.DisplayAlerts = False '警告停止 wb.SaveAs Filename:=fname, WriteResPassword:="pass" '書き込みパスワード設定 wb.Close '閉じる Application.DisplayAlerts = True '警告停止解除 n = n + 1 'ブック数をカウント End If fname = Dir 'フォルダ内の次のExcelブックを検索 Loop '繰り返す Application.ScreenUpdating = True '画面更新停止を解除 MsgBox n & "件のブックを処理しましました。", vbInformation, " ( ̄ー ̄)v " Exit Sub line: 'エラー処理 Application.ScreenUpdating = True '安全策 Application.DisplayAlerts = True '安全策 MsgBox "予期せぬ事由により" & n + 1 & "件目で失敗し、中断しました。", vbCritical, " Σ( ̄ロ ̄lll) " End Sub

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

安直ですが、圧縮ツール(仮にZIP)でパスワード設定する方法は如何でしょうか。 仮にWin-XPなら右クリックメニューの「送る」から圧縮(ZIP)フォルダ作成後、パスワード追加(同一パスワードになる)で一括設定が可能です。

rurumiko
質問者

お礼

エクセルでやらないといけないもので。でも、回答ありがとうございます

noname#111860
noname#111860
回答No.1

自分だったら、作成しても公開しないと思います。 マクロの記録を使って、書込みパスワードを設定してみてください。 後は、Dir関数などで、指定フォルダにあるファイルに対し、 繰返すだけです。 #1日~2日で作成できる単純なマクロなので

rurumiko
質問者

お礼

パスワードの入力もマクロでできるとは思っていなかったです。本当にいろいろなことができるのですね。 今回は他の人のコードを使ってしまいましたが、もっと勉強しようと思います。ありがとうございました。

関連するQ&A