パワーポイントVBAに貼付けた複数のグラフサイズを統一したいと思っています。
1~20枚目のスライドに、それぞれ2つのグラフが貼付けてあります。
全てのグラフサイズ・位置を統一したいと思い、以下の様なVBAを書いてみました。
----------
Sub 表サイズの統一()
Dim myTop1, myLft1, myHgt1, myWdt1, cnt, i, myTop2, myLft2, myHgt2, myWdt2
With ActivePresentation.Slides(1).Shapes(1)
myTop1 = .Top
myLft1 = .Left
myHgt1 = .Height
myWdt1 = .Width
End With
With ActivePresentation.Slides(1).Shapes(2)
myTop2 = .Top
myLft2 = .Left
myHgt2 = .Height
myWdt2 = .Width
End With
cnt = ActivePresentation.Slides.Count
For i = 2 To cnt
With ActivePresentation.Slides(i).Shapes(1)
.Top = myTop1
.Left = myLft1
.Height = myHgt1
.Width = myWdt1
End With
Next
For i = 2 To cnt
With ActivePresentation.Slides(i).Shapes(2)
.Top = myTop2
.Left = myLft2
.Height = myHgt2
.Width = myWdt2
End With
Next
End Sub
----------
各スライドにある1つ目のグラフのサイズは統一出来たのですが、2枚目のグラフは何の変化もおきません。
どこが悪いのか、どなたかご教示頂ければ幸いです。
どうぞよろしくお願い致します。
No.1ベストアンサー
- 回答日時:
失礼ながら、2003で試行してみましたが、
ご提示のコードできちんと動きます。
なので
> どこが悪いのか
具体的な指摘は出来かねるのですが・・
For i = 2 To cnt
With ActivePresentation.Slides(i)
.Select
With .Shapes(2)
.Select
.Top = myTop1
として、ステップインで実行してみると原因が掴めるかもしれません。
余計なお世話かもしれませんが、
Sub 表サイズの統一()
Dim myTop1, myLft1, myHgt1, myWdt1, cnt, i, myTop2, myLft2, myHgt2, myWdt2
With ActivePresentation.Slides(1)
With .Shapes(1)
myTop1 = .Top
myLft1 = .Left
myHgt1 = .Height
myWdt1 = .Width
End With
With .Shapes(2)
myTop2 = .Top
myLft2 = .Left
myHgt2 = .Height
myWdt2 = .Width
End With
End With
cnt = ActivePresentation.Slides.Count
For i = 2 To cnt
With ActivePresentation.Slides(i)
With .Shapes(1)
.Top = myTop1
.Left = myLft1
.Height = myHgt1
.Width = myWdt1
End With
With .Shapes(2)
.Top = myTop2
.Left = myLft2
.Height = myHgt2
.Width = myWdt2
End With
End With
Next
End Sub
こんな感じでまとめるとスッキリしますね。
早速ご回答頂き有り難うございました!
お礼が遅くなり失礼しました汗
再度トライしてみましたが、何故かVBAは働いてくれませんでした。
もしかすると2007を使っているからかもしれませんが、不思議です。
デバッグしてみると、以下の様になりました。
----------
For i = 2 To cnt
With ActivePresentation.Slides(i)
With .Shapes(1)
.Top = myTop1
.Left = myLft1
.Height = myHgt1
.Width = myWdt1
End With
With .Shapes(2)←←←←←←←←←←エラー箇所
.Top = myTop2
.Left = myLft2
.Height = myHgt2
.Width = myWdt2
エラーメッセージ:
Shapes(不明なメンバー):範囲外の整数2は次の有効な範囲にありません:1から1へ
----------
いずれにせよご回答頂き有り難うございました!
綺麗なコードもご紹介頂き、大変勉強になります。
お手数をおかけしました。
No.3
- 回答日時:
> "shape (不明なメンバー):無効な要求です。
図形を選択するには、表示がアクティブでなければいけません"> とのエラーメッセージが帰ってきました。
>> ActivePresentation.Slides(2).Shapes(2).Select
とりあえず・・2枚目のスライドを表示させた状態で動かしましたか?と言うのが確認です。
これで選択できないという事は、
思惑の「グラフが二つ目のShapes」ではない、という事が考えやすいです。
※意味は2通り
1)もしかしたら、グラフが「Shapeとして認識されていない」パターン
2ページ目の二つ目のグラフの大きさを変える動作をマクロに記録し、
ソレで確認するとはっきりします。
例えば、こんな記録が残ります。
ActiveWindow.Selection.SlideRange.Shapes("Picture 22").Select
With ActiveWindow.Selection.ShapeRange
.ScaleWidth 0.75, msoFalse, msoScaleFromBottomRight
.ScaleHeight 0.67, msoFalse, msoScaleFromBottomRight
End With
2)「二つ目のShape」が別のShapeであるパターン
一つ目のグラフを選択した状態にして、キーボードのTabキーを押すと
二つ目のグラフが選択された状態になって欲しいです。
これがグラフではなく他のモノにカーソルが飛んでいくなら、
グラフの間に別の何かが挟まっているという事ですね。
Sub test()
For i = 1 To ActivePresentation.Slides(2).Shapes.Count
Debug.Print ActivePresentation.Slides(2).Shapes(i).Name
Next
End Sub
こんな感じで名前を書きだしていくと、何かわかるかもしれません。
そして、残念な報告です・・
2010でもご提示のコードで動いてしまいました・・
2007だけ動かないと言うのもおかしな話ですが・・
力及ばず、申し訳ありません。
傾向と対策が見つかることを祈っております。
何度もご回答頂き本当に有り難うございます。
>1)もしかしたら、グラフが「Shapeとして認識されていない」パターン
パワーポイント2007では、ご存知の通りマクロの記録機能が削除されてしまっております。
手元のPCでは確認出来ないのですが、何か機会を見つけて確認してみようと思います。
>2)「二つ目のShape」が別のShapeであるパターン
tabをクリックしたところ、見事二つ目のグラフに飛んでくれました。
余計な文字やグラフを全て削除して、シンプルなファイルを作って実験してみたのですが、
それでも動いてくれませんでした。
これだけ色々とご指導頂いたにも関わらず、解決のご報告を差し上げられず、申し訳ありません。
もしかすると、mac book air上の仮想ソフト(virtual box)で作業を行っているから悪かったのかも
しれません。
いずれにせよ、貴重なお時間を頂き有り難うございました!
心より感謝申し上げます。
No.2
- 回答日時:
> 2枚目のグラフは何の変化もおきません。
> エラーメッセージ:
> Shapes(不明なメンバー):範囲外の整数2は次の有効な範囲にありません:1から1へ
> ----------
すいません、確認ですが・・
2枚目のスライドを表示しておいて、
Sub Test()
ActivePresentation.Slides(2).Shapes(2).Select
End Sub
これを実行すると、思惑の「二つ目のグラフ」が選択された状態になりますか?
何度も回答ありがとうございます!
エラー箇所を特定して頂きありがとうございました!
ご指摘の通り、Testマクロを組みましたが、
"shape (不明なメンバー):無効な要求です。図形を選択するには、表示がアクティブでなければいけません"
とのエラーメッセージが帰ってきました。
現在作っているファイルについて、特異な現象なのかと思い、新しくファイルを作り直して実験してみましたが、
やはり同様のエラーメッセージになります。
ググってみたのですが原因が分からず…
http://social.msdn.microsoft.com/Forums/en-US/is …
同様の悩みを抱えた人は見つけたのですが、ここで提示されている解決方法(Select しないで単にActiveにする)を
試しても、やはり動きませんでした。
何度もお答え頂き恐縮なのですが、理由など分かればお教え頂けませんでしょうか??
よろしくお願い致します。
なお、マクロを使って修正しようとしていた資料は、力技で(手作業で)完成させてしまいました。
もしも原因不明であれば、その旨一言書いて頂ければと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) エクセルVBAで以下のようなコードを書いたらエラーになりました。何処が間違っているの教えて? 1 2023/02/10 18:30
- Visual Basic(VBA) QRコード作成マクロについて 3 2022/11/26 16:55
- 英語 英文の添削お願いします。【長文です。】 マッチングアプリで相手を言い負かしている時のやつです。 色々 1 2023/07/01 02:12
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- YouTube youtubeからの著作権メールについて 2 2023/02/14 16:12
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- 英語 was supposed to でなにかする予定だったのにという意味だそうですが、例えば I was 3 2022/03/25 01:49
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
一番好きな「クリスマスソング」は?
街に出ればクリスマスソングを聞かない日はないくらい、 いろんな曲がかかっていますよね。 あなたが一番好きな「クリスマスソング」を教えてください!
-
これが怖いの自分だけ?というものありますか?
人によって怖いもの(恐怖症)ありませんか? 怖いものには、怖くなったきっかけやエピソードがあって聞いてみるとそんな感覚もあるのかと新しい発見があって面白いです。
-
集合写真、どこに映る?
あなたが集合写真を撮られるとき、画角のどのあたりにいることが多いですか? 私は振り返ってみると右の端にいることが多い気がします。
-
【選手権お題その2】この漫画の2コマ目を考えてください
サッカーのワンシーンを切り取った1コマ目。果たして2コマ目にはどんな展開になるのか教えてください。
-
ExcelVBAにて既に開かれているPowerpointをアクティブにするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでグラフタイトルが折...
-
たくさん作った同じ設定のグラ...
-
エクセルにおける、グラフの指...
-
EXCEL・複数ある円グラフの円の...
-
エクセル(Excel)の目盛りの一...
-
Word
-
~エクセル~円グラフのみを抽...
-
エクセルのグラフの一部拡大
-
エクセルグラフの一括設定。
-
エクセルで散布図をつくったとき
-
エクセルグラフの数値軸(Y)の...
-
イラレのグラフがグループ解除...
-
Excelで作ったグラフをIllustra...
-
EXCELでの棒グラフの太さについて
-
excelレーダーチャートの重なり...
-
EXCEL
-
エクセル・マクロでグラフを最...
-
EXCEL:3-D 等高線グラフの軸の...
-
エクセルの大きなシートでグラ...
-
パワーポイントに貼り付けたエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでグラフタイトルが折...
-
エクセルにおける、グラフの指...
-
たくさん作った同じ設定のグラ...
-
EXCEL・複数ある円グラフの円の...
-
エクセルのグラフの一部拡大
-
パワーポイントに貼り付けたエ...
-
エクセルグラフの一括設定。
-
~エクセル~円グラフのみを抽...
-
イラレのグラフがグループ解除...
-
エクセルグラフの数値軸(Y)の...
-
エクセル(Excel)の目盛りの一...
-
エクセル:ぴったり重なった後...
-
EXCEL
-
EXCELでの棒グラフの太さについて
-
エクセルで作業ごとの時間をグ...
-
EXCELで海の潮見表(タイドグラ...
-
excel2010 グラフエリアの外の...
-
エクセルのグラフタイトルを中...
-
Excel:とびとびの日付のデータ...
-
エクセルのグラフが作成した通...
おすすめ情報