Excelには読み取り専用の切り替えボタンがありますが、PowerPointやWordにはないですよね。
というわけで、PowerPointに読み取り専用を切り替える(ON/OFFする)ボタンを追加する方法をまとめました。
また、保存されていないファイルを読み取り専用にしようとすると、保存するかどうかのダイアログが表示されるようにしています。
今回はPowerPointに追加する方法ですが、近いうちにWordに追加する方法もまとめたいと思います。
Wordについても、やり方をまとめました。
準備
PowerPointに読み取り専用ボタンを設定するにあたり、以下3つのファイルが必要です。
- 読み取り専用で開くためのマクロが記述されたファイル(ppamファイル)
- リボンのUIを定義するファイル(xmlファイル)
- 参照情報を定義するファイル(relsファイル)
最終的には、この3ファイルをppamファイルにまとめて使用します。完成形のファイルを作成しましたので、よろしければダウンロードして使ってください。
PowerPoint_ReadOnlySwitch
それぞれの内容を知りたい方は、このまま読み進めてください。内容には興味がないという人は、設定方法まで読み飛ばして下さい。
ppamファイル
PowerPointを読み取り専用で開くためのマクロは以下のようになります。
コメントも追加していますので、大まかな流れは理解できると思います。
Option Explicit
'**********************************************************
'* 現在のファイルを閉じて、読み取り専用で開きなおす
'**********************************************************
Sub ReadOnlySwitch()
With ActivePresentation
If .Saved = False Then
'未保存のファイルならダイアログを表示
Dim rc As Long
rc = MsgBox("保存されていない変更があります。" & Chr(13) & "保存しますか?", vbYesNoCancel + vbQuestion)
If rc = 6 Then
'「はい」が選択された場合、上書き保存して続行
.Save
ElseIf rc = 7 Then
'「いいえ」が選択された場合、何もせずに続行
ElseIf rc = 2 Then
'「キャンセル」が選択された場合、戻る
Exit Sub
End If
End If
Dim path As String: path = .FullName
Dim isReadOnly As Boolean: isReadOnly = Not .ReadOnly
'上書きせずに一度閉じる
.Saved = msoTrue
Call .Close
End With
'読み取り専用で開く
Call Presentations.Open(FileName:=path, ReadOnly:=isReadOnly)
End Sub
xmlファイル
ppamファイル内にある、customUI.xmlファイルを使って、リボンを自分専用にカスタマイズすることができます。
配布しているppamファイルのcustomUI.xmlは以下のようになっています。
<?xml version="1.0" encoding="utf-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="MyTab" label="Add-in">
<group id="MyGroup1" label="Add-in">
<button id="ReadOnly" label="読み取り専用の設定/解除" imageMso="ReadOnly" size="normal" onAction="ReadOnlySwitch" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
relsファイル
配布しているppamファイル内の.relsファイルに、先ほど紹介したcustomUI.xmlファイルの情報を追記しています。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="myCustomUI" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="customUI/customUI.xml"/><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="ppt/presentation.xml"/></Relationships>
設定方法
先ほど用意したファイルを使って、PowerPointに読み取り専用ボタンを追加していきます。
Officeには、アドインフォルダとして設定されているフォルダがありますので、そこに「ppamファイル」を格納します。
具体的には、次の通りです。※ユーザー名は各自の環境に合わせて読み替えてください。
C:\Users\<ユーザー名>\AppData\Roaming\Microsoft\AddIns
AppDataフォルダはデフォルトでは非表示フォルダとなっていますので、エクスプローラーで隠しファイルを表示するようにしてください。表示方法が分からなければ、エクスプローラーのアドレスバーに、上記のアドレスを直接入力して移動することも可能です。
任意のPowerPointファイルを開き、[ファイル] > [オプション] > [アドイン]と進んでいきます。
そして、[管理]プルダウンから、[PowerPointアドイン]を選択し、[設定]をクリックします。
表示されたダイアログの[新規追加]ボタンをクリックし、STEP1で格納したファイルを選択し、チェックが付いていることを確認します。
最後に、[閉じる]をクリックして終了です。
アドインファイルの読み込みに成功すると、リボンのところに「Add-in」というのが追加されていると思います。
Add-inリボンを開くと「読み取り専用の設定/解除」ボタンが追加されているので、実際に切り替わるかどうか確認してください。
まとめ
以上がPowerPointに読み取り専用の切替えボタンを追加する方法となります。
リボンに追加されたボタンはクイックアクセスツールバーにも設定できますので、好みに合わせて設定してみてください。
また、PowerPointファイルを開いてから読み取り専用にするのではなく、開くときに読み取り専用で開く方法についてもまとめていますので、良ければ参考にしてください。
コメント