• ベストアンサー

PowerPoint2010で画像比率の変更マクロ

PowerPoint2010で以前に作成したスライド比率4:3のものを読み込み、スライド比率を16:9に変更しました。 すると画像がすべてその比率で変換されてしまったのですが、写真は元の比率でないと変です。 1枚1枚手作業で始めたのですが、あまりにも大変なのでマクロで出来ないかと思います。 内容は、  ・写真の比率を、横幅の%をそのままにして高さの%を横幅の%に揃える というものです。 どなたかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

私もパワーポイントのマクロで図形操作するのに苦労しました。 おやりになりたいことは良く分かりましたので、私の知る範囲でお答えします。 スライド編集画面で、変更図形を選択後、以下のマクロを実行してみてください。 ただし、大きなお世話かもしれませんが、この方法だと高さが1.333倍になり、 他のオブジェクトの邪魔になるかもしれませんので、縦固定の方法も載せました。 以下、必要以外にも、ぐちゃぐちゃ書いて申し訳ありませんが参考になれば幸いです。  ※不要という文は、自分の整理のために書いてあるので削除してください  ※Dim文は割愛させていただきました(それでも動作すると思います) 以下コード---------- Sub WidthfixedMacro() With ActiveWindow.Selection.ShapeRange '現在の図形のサイズを取得 ini_sw = .Width '横を変更しないので不要 ini_sh = .Height '現在の図形の位置を取得 ini_pl = .Left '横を変更しないので不要 ini_pt = .Top '変更後のサイズ chg_sw = ini_sw '横を変更しないので不要 chg_sh = ini_sh * 16 / 9 * 3 / 4 '変更後の位置 chg_pl = ini_pl '横を変更しないので不要 chg_pt = ini_pt - (chg_sh - ini_sh) / 2 '図形の位置を変形と移動(◆中央合わせ) .Width = chg_sw '横を変更しないので不要 .Height = chg_sh .Left = chg_pl '横を変更しないので不要 .Top = chg_pt '左上合わせならこの行は削除してください End With End Sub  ※以下、縦方向固定の場合 Sub WidthfixedMacro() With ActiveWindow.Selection.ShapeRange '現在の図形のサイズを取得 ini_sw = .Width ini_sh = .Height '縦を変更しないので不要 '現在の図形の位置を取得 ini_pl = .Left ini_pt = .Top '縦を変更しないので不要 '変更後のサイズ chg_sw = ini_sw * 9 / 16 * 4 / 3 chg_sh = ini_sh '縦を変更しないので不要 '変更後の位置 chg_pl = ini_pl - (chg_sw - ini_sw) / 2 chg_pt = ini_pt '縦を変更しないので不要 '図形の位置を変形と移動(◆中央合わせ) .Width = chg_sw .Height = chg_sh '縦を変更しないので不要 .Left = chg_pl '左上合わせならこの行は削除してください .Top = chg_pt '縦を変更しないので不要 End With End Sub

ryou4649
質問者

お礼

お礼を忘れていました。 申し訳ありませんでした。

関連するQ&A