パワーポイント スライドサイズ設定
PowerPointのスライドサイズを設定するVBSを作成してみましたので公開します。
PowerPointでは、16:9 や 4:3 のサイズ、A4、B4、A3など、様々なサイズが設定できます。
印刷目的でPowerPointを使う(A4,B4,A3など。あるいは、ユーザー設定の紙のサイズ)
印刷目的で、A4、B4、A3などを設定した場合、PowerPoint側で余白をある程度取っておいて、余白の内側がスライドの中身になるように設定してあるようです。
余白のバランスも込みで作成したい場合は、印刷のイメージが感覚的に崩れる可能性がある訳です。
その場合、PowerPointのスライドのサイズの入力時に、実際のサイズをcm単位で入力しておく必要があります。
画像作成目的でPowerPointを使う(1080px、720px、実際のスクショサイズなど)
私の場合は、PowerPointで作成したスライドをpng画像としてエクスポートして、動画編集アプリで読み込んで、動画に仕上げることが多いのですが、14インチのPCで、1366px × 768px であるので、スクリーンショットをPowerPointに貼り付けたり、エクスポートしたりを繰り返した場合に、デフォルトの 720 のスライドを作っていると、画像の劣化が少々気になります。
スライドのサイズを調整して、エクスポート画像が丁度 1366px × 768px になるように設定すると、劣化が気にならない状態になったので、その設定を愛用しています。
PowerPointのスライドサイズを、pxやcmを指定して簡単に設定するVBS
PowerPointがインストールされているWindowsPCで、メモ帳を開いて、下記のコードを貼り付けて、ANSI形式で保存して、ファイル名をパワポサイズ設定.vbs などにして、ダブルクリックで実行すると、PowerPointが立ち上がって、紙サイズや画像サイズを切り替えて作成することができます。(他の環境で試してないので、もしもスライドサイズの設定がうまく行かなかったらすみません)
お勧めのカスタマイズは、黄色いマーカーを付けている部分です。
今は、VBSを立ち上げたときに、デフォルトで1が入っていますが、いつもはB4でプリントを作っているような方は、DEFAULT=5にします。1~6までとは違う設定をいつも使う方は、デフォルトを7にして、設定値をpx単位か、cm単位で指定し直します。
例えば、いつもB4縦でプリントを作るという方は、横25.7㎝、縦36.4㎝ですので、
DEFAULT=7
pxcm7=2
USERx=25.7
USERy=36.4
という様に修正して、上書き保存して閉じてください。
また、500px角の正方形で画像をエクスポートして使う目的の方は、
DEFAULT=7
pxcm7=1
USERx=500
USERy=500
という風に書き換えます。
スライドサイズ適正化.vbs
'************************************************************************
'****** ↓よく使う目的に合わせて、4つのパラメータを変更してください *****
'デフォルトの設定値を決める
' 1:最大化してWindowの横幅実測し、16対9の画面に設定
' 2:HD 1080px
' 3:HD 720px
' 4:A4縦
' 5:B4横
' 6:A3横
' 7:ユーザー設定
DEFAULT=1 '設定(1)
'ユーザー設定の幅と高さの単位
' 1:pxで設定 、2:cmで設定
pxcm7=1 '設定(2)
' 幅と高さのpx値、またはcm値
USERx=1366 '設定(3)
USERy= 768 '設定(4)
'****** ↑パラメータ設定はここまで *****
'************************************************************************
const ppWindowMaximized=3
dim x_set(7),y_set(7),pxcm(7)
dim px2cm(2),cm2px(2),kansan(2)
const cmMAX=142.24
const cmMAX_set = 4032
const cmMAX_px = 5376
'pxでセット
px2cm(1)=cmMAX/cmMAX_px
cm2px(1)=1
kansan(1)=cmMAX_set/cmMAX_px
'cmでセット
px2cm(2)=1
cm2px(2)=cmMAX_px/cmMAX
kansan(2)=cmMAX_set/cmMAX
'パワーポイントにアクセスする
'パワーポイントが閉じているので、開いて、新しいプレゼンテーションを作成する
Set objPPT = CreateObject("PowerPoint.Application")
objPPT.Visible = True
'Presentationを新規作成
Set objPT = objPPT.Presentations.Add()
'ActivePresentationを確認
set ActPPT=objPPT.ActivePresentation
if objPPT.windows.count>1 then
if msgbox("パワーポイントが複数開いています。" & chr(10) & _
" 新規プレゼンテーション『" & ActPPT.name & _
"』についてフォーマットを適用します。", vbOKCancel) = vbCancel then
msgbox("キャンセルしました")
WScript.Quit
end if
end if
'objPPT.WindowState = ppWindowMaximized
x_set(2)=1920:y_set(2)=1080:pxcm(2)=1:'px
x_set(3)=1280:y_set(3)= 720:pxcm(3)=1:'px
x_set(4)=21.0:y_set(4)=29.7:pxcm(4)=2:'A4縦
x_set(5)=36.4:y_set(5)=25.7:pxcm(5)=2:'B4横
x_set(6)=42.0:y_set(6)=29.7:pxcm(6)=2:'A3横
'ユーザー設定の幅、高さをセットする
pxcm(7)=pxcm7
x_set(7)=USERx
y_set(7)=USERy
'画面の測定値を計算する
Set items = CreateObject("WbemScripting.SWbemLocator") _
.ConnectServer.ExecQuery("Select * From Win32_VideoController")
For Each Item In items
x_set1 = Item.CurrentHorizontalResolution
y_set1 = Item.CurrentVerticalResolution
Exit For
Next
Set items = Nothing
'実行する設定をInputBoxから読み込む
settei=inputbox("1. 画面のサイズに合わせる" & chr(10) & _
" 幅" & x_set1 & "px 高さ" & y_set1 & "px" & chr(10) & _
"2. 縦1080px" & chr(10) & _
"3. 縦 720px" & chr(10) & _
"4. A4縦" & chr(10) & _
"5. B4横" & chr(10) & _
"6. A3横" & chr(10) & _
"7. ユーザー設定" & chr(10) & _
" 幅 " & (USERx*cm2px(pxcm7)) & "px (" & _
Round(USERx*px2cm(pxcm7),3) & "cm)" & chr(10) & _
" 高さ " & (USERy*cm2px(pxcm7)) & "px(" & _
Round(USERy*px2cm(pxcm7),3) & "cm) " _
,"番号を入力してください",DEFAULT, vbOKCancel)
if settei="" then
msgbox("キャンセルしました")
WScript.Quit
end if
setteix=CInt(settei)
if setteix=1 then
'***** 測定モード *****
pxcmx=1
x_set(1) = x_set1
y_set(1) = y_set1
if msgbox("Windowの幅の測定値を元に設定します。" & chr(10) & _
"(Win32_VideoControllerクラス)" & _
chr(10) & chr(10) & "幅 " & x_set(1) & "px 高さ" & y_set(1) & "pxへ", _
vbOKCancel) _
= vbCancel then
msgbox("キャンセルしました")
WScript.Quit
end if
else
'***** 測定モード以外 *****
x = x_set(setteix)
y = y_set(setteix)
pxcmx=pxcm(setteix)
'最後の確認
if msgbox("幅 " & Round(x*cm2px(pxcmx),0) & "px (" & _
Round(x*px2cm(pxcmx),3) & "cm)" & _
chr(10) & _
"高さ " & Round(y*cm2px(pxcmx),0) & "px (" & _
Round(y*px2cm(pxcmx),3) & "cm) へ変更" , _
vbOKCancel) = vbCancel then
msgbox("キャンセルしました")
WScript.Quit
end if
end if
ActPPT.PageSetup.SlideWidth = x_set(setteix)*kansan(pxcmx)
ActPPT.PageSetup.SlideHeight = y_set(setteix)*kansan(pxcmx)