• ベストアンサー

excel 任意のパスワードで一括変更するには

社員のアンケート調査にて、エクセルでの入力を考えております。 基になるファイルは、原本をバッチファイルにて連番コピーの後、社員名にリネームして作成をすることで準備を進めているのですが、プライバシーの観点から、社員毎に異なった読み取りパスワードを設定したいと考えております。 社員数が100近くあり、1つ1つのファイルを開いて設定するのが大変なため、先ほどのバッチのような処理を考えているのですが、どのような方法が一番効率的でしょうか? ご存じの方、アドバイスいただければと思います。よろしくお願いします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

こんな事でしょうか。 同じ内容を名前とパスワードを変更して保存するだけなら、いちいちテンプレートから新規作成する必要もありませんが、ご参考まで。 一番左側のワークシートに対照表を作成します(画像参照)。このとき、Ctrl+shift+:で、目的の表が選択できる(余分なデータが存在しない)事を前提としています。 Sub test() Dim wbk As Workbook Dim targetRange As Range Dim i As Long Set targetRange = ThisWorkbook.Worksheets(1).Range("A1").CurrentRegion For i = 1 To targetRange.Rows.Count Set wbk = Workbooks.Add(Template:=ThisWorkbook.Path & "\" & "pwTest.xltx") '個人毎に必要な転記等があればここに記入 wbk.SaveAs Filename:=ThisWorkbook.Path & "\" & targetRange.Cells(i, 1).Value & ".xlsx", _ Password:=targetRange.Cells(i, 2).Value wbk.Close Set wbk = Nothing Next i End Sub

makun100
質問者

お礼

丁寧な補足、ありがとうございました。 説明を見て、ようやく謎が解けました。 テンプレート作成と同時に、職員毎の補足(名前の自動挿入など)もでき、作業の手間が省けました。

makun100
質問者

補足

回答ありがとうございます。 実際にvbaにてコードを転記して実行してみたところ、エラー400と表示されてしまいました。 自分でも色々と分析して修正しようと思うのですが、エラー400だけでは手がかりとならず、苦戦しております。 実際に行った次の点について、正しいか教えてもらえますでしょうか? 1.アンケート原紙のブックにシートを1つ追加し、それが相対表となる 2.vbaのコードは、相対表(sheet1)に記載する 3.そうであると、名前を変更してコピーされた場合、相対表も残ってしまうのでしょうか?(エラーのため、最終動作が確認できず、不明です) よろしくお願いします。

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

その他の回答 (1)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

#1です。説明不足ですね。 ・対照表をSheet1にもつブックにVBAコードを記述する。これはアンケート用紙とは全く別のブック。従ってアンケート用紙に残るご心配は無用です。 ・アンケートの原紙は、テンプレート形式で保存しておく。ここではpwTest.xltxという名前になっているが、任意に変更して下さい。 ・テンプレートは、対照表のブックと同じフォルダーに置く。 ・テンプレートブックは閉じておく。 以上でお試し下さい。

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

関連するQ&A