WordやExcelと違って、PowerPointの場合はOpenメソッドでファイルを開く際にパスワードを指定するオプションがありません。
PowerPointのマクロで、パスワードが設定されたファイルを開きたいときにどうするかというと、下記コードのようにファイルパスの後に「:」(コロン)を2つつけてパスワードを繋げることで、ファイルを開くことができるようになります。
Option Explicit Public Sub Sample() Const PW_Read As String = "read" '読み取りパスワード Const PW_Write As String = "write" '書き込みパスワード '読み取りパスワードが設定されたファイルを開くとき Application.Presentations.Open "C:\Files\ReadPW.pptx::" & PW_Read '書き込みパスワードが設定されたファイルを開くとき Application.Presentations.Open "C:\Files\WritePW.pptx::::" & PW_Write '両方のパスワードが設定されたファイルを開くとき Application.Presentations.Open "C:\Files\PW.pptx::" & PW_Read & "::" & PW_Write End Sub
■ 参考Webページ
・PowerPoint 2003 post-Service パック 2 の修正プログラム パッケージの説明: 2006 年 3 月 21 日
http://support.microsoft.com/kb/916154/ja
また、2010以降のバージョンの場合は、ProtectedViewWindowsオブジェクトのOpenメソッドであれば「ReadPassword」オプションでパスワードを指定してファイルを開くことができます。
Option Explicit Public Sub Sample2() Application.ProtectedViewWindows.Open "C:\Files\ReadPW.pptx", "read" End Sub
ただ、不思議なことに下記コードのようにEditメソッドを実行すると、ファイルが開かれると同時に勝手にファイルが閉じてしまいます。
同じプロシージャーを再度実行するとファイルを開いて編集できるようになるのですが、正直よく分からない挙動です。
環境によるものなのかPowerPointの仕様によるものなのかは分かりませんが、とりあえず私の環境(Windows 7 + PowerPoint 2010)では上記のような挙動です。
Option Explicit Public Sub Sample3() Application.ProtectedViewWindows.Open("C:\Files\ReadPW.pptx", "read").Edit End Sub
この記事へのコメントはありません。