アプリ版:「スタンプのみでお礼する」機能のリリースについて

Powerpointに貼った画像のサイズを変更したくて、下記のマクロを書いて実行したら、

4行目の
With ppApp.Slides(1).Shapes(1)
で修飾子エラーになります。

どこをどう直せばよいでしょうか?

ーーー<start of code>ーーー
Sub グラフサイズ調整()

Dim ppApp As Long

For Each Slide In ActivePresentation.Slides


With ppApp.Slides(1).Shapes(1)
.Top = 1 / 0.03527778
.Left = 1 / 0.03527778
.LockAspectRatio = True
.Width = 5 / 0.03527778
End With

Each

Set ppApp = Nothing

End Sub
ーー<end of code>ーーー

A 回答 (3件)

こんにちは



全部を確認していませんが、少なくとも

>Dim ppApp As Long
って宣言しているので、

>ppApp.Slides(1).Shapes(1)
では、「そんなプロパティしらんよ」ってことになるでしょう。


あと、ループが閉じていないとか、そもそもループで何をしたいのとか、いろいろありそうですけれど…
    • good
    • 0

こんにちは、


Slides(1).Shapes(1) であるなら、Forは不要ではないでしょうか
多分こんな感じになります。
PowerpointVBA
Sub グラフサイズ調整()
  With ActivePresentation.Slides(1).Shapes(1)
    .LockAspectRatio = msoTrue        '縦横比を固定
    '.Height = '縦横比を固定なので不要、Heightで指定の場合Width不要
    .Width = 300 
    .Top = 200
    .Left = 100
  End With
End Sub

スライドインデックス1のShapeインデックス1がターゲットになります。
数値は、暫定です変更してください
    • good
    • 0
この回答へのお礼

すみません。せっかく教えていただいたコードですが、Powerpointの標準モジュールに登録後、実行しても、Powerpointに貼った画像のサイズが変りません。何がまずいのでしょうか?画像をクリックしてマクロ実行しても同じです。

お礼日時:2020/07/28 13:46

#2です。


>With ppApp.Slides(1).Shapes(1)
とありましたので、そのままSlides(1).Shapes(1)としましたが、

Slides(1)は、一番目のスライド
Shapes(1)は、一番目のShapeと言う意味になります。(一番目とはインデックスです)
この2つの条件に画像が一致していない場合は、ここを書き換える必要があります。

Slides(1)を何番目のスライドの画像かで書き換えます。3番目のスライドなら、Slides(3)

画像についても同様ですが、インデックスが分らない場合は、名前で指定することも出来ると思います。
.Shapes("名前") 名前を調べる方法は、ホームタグの編集>>選択>>オブジェクトの選択と表示をクリック
選択画面で対象を確認してください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!