パワーポイント スライドサイズ設定

PowerPointのスライドサイズを設定するVBSを作成してみましたので公開します。

PowerPointでは、16:9 や 4:3 のサイズ、A4、B4、A3など、様々なサイズが設定できます。

印刷目的でPowerPointを使う(A4,B4,A3など。あるいは、ユーザー設定の紙のサイズ)

印刷目的で、A4、B4、A3などを設定した場合、PowerPoint側で余白をある程度取っておいて、余白の内側がスライドの中身になるように設定してあるようです。

余白のバランスも込みで作成したい場合は、印刷のイメージが感覚的に崩れる可能性がある訳です。

その場合、PowerPointのスライドのサイズの入力時に、実際のサイズをcm単位で入力しておく必要があります。

PowerPointのサイズ設定画面

画像作成目的で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)

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA