2014年9月28日日曜日

[VBA] Excel のパスワードを設定する。

VBA で Excel の「読み取りパスワード」「書き込みパスワード」を設定する方法です。

パスワードの種類によってプロパティが分かれており、リファレンスからは見つけにくいが、
Workbook の Password プロパティ、もしくは Workbook.SaveAs メソッドのパラメーター を使います。

Dim XlsApp As New Excel.Application
Dim Book As Workbook
Set Book = XlsApp.Workbooks.Open("ファイル名.xlsx")
Book.Password = "password01" ' 読み取りパスワード
Call Book.SaveAs(Filename:="ファイル.xlsx", _
  Password:="password01", _ ' 読み取りパスワード
  WriteResPassword:="password01", _ ' 書き込みパスワード
  ReadOnlyRecommended:=True) ' 読み取り専用を推奨する
Book.Close

パスワードは「最大 15 文字」となる。

Workbook.SaveAs メソッド
http://msdn.microsoft.com/ja-jp/library/microsoft.office.tools.excel.workbook.saveas.aspx