スナックelve 本店

バツイチ派遣40代女性の日記です

画像を縮小してカットするマクロ

ピクミンの画像を大量に貼り付けておりましたら、10M超えていたため怒られが発生しましたので、エクスプローラ→パワーポイントにドラッグドロップ→縮小して切り取ってブラウザに貼り付け、という作業が無限に発生しました。一生コピペだ、これ。
あ、画像たくさん貼る記事は見たままモードが良いよ・・・(´;ω;`)

そういやPowerPointのマクロって意味不明なんだよなぁ・・・。

ほらもうここから意味不明じゃん? WordだとThisDocument、ExcelだとThisWorkBookがあって、とりあえずソレをMeにして書き始められるじゃん?
f:id:elve:20211120194959p:plain

ThisPresentationだとアニメーションだのスライドの管理だの時間スケジュールだのも入るから煩雑になるのかな? ←ぜんぜん違うかも
まぁそれはそれとして
公式に

For Each sld In ActivePresentation.Slides
  For Each sh In sld.Shapes
    If sh.Type = msoLinkedOLEObject Then
      If sh.OLEFormat.ProgID = "Excel.Sheet" Then
        sh.LinkFormat.AutoUpdate = ppUpdateOptionManual
      End If
    End If
  Next
Next

PowerPoint 2010 VBA の基礎知識 | Microsoft Docs

ってソースがあるので、これをベースにすっか。スライド1枚に貼り付けた図が1つだけどな。
デフォルトだとPowerpointって何故か単位がcmなんだよね~。これってどう設定すんだろ?

Sub スライドサイズを変更する()
 With ActivePresentation.PageSetup
  .SlideWidth = 29.7 * 72 / 2.54
  .SlideHeight = 21 * 72 / 2.54
 End With
End Sub

スライドのサイズを変更するPowerPointマクロ:パワーポイントマクロ・PowerPoint VBAの使い方/Slide・スライド

これ使わせてもらお~。

Sub test()
Dim sld As Slide
Dim sh As Shape
For Each sld In ActivePresentation.Slides
    For Each sh In sld.Shapes
        sh.Height = 10 * 72 / 2.54
        sh.Cut
        Exit For
    Next
Next
End Sub

これを開発リボンの新規グループに入れて、っと。
f:id:elve:20211120200007p:plain

ワイはそんなブラインドタッチバキバキ派ではないので、画面にエクスプローラPowerpointChromeを並べて

  1. エクスプローラから画像をPowerPointにドラッグドロップ
  2. ボタンをポチ
  3. Chromeクリックしてctrl+v

ホイホイっと。うむ。便利w