![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
PowerpointVBAでPowerpointスライドに貼った画像を上下、左右センタリングしたいのですが、下記をどう改造すれば良いでしょうか?
---<start of code>--
Sub graph_size_adjust()
With ActiveWindow.Selection.ShapeRange
.LockAspectRatio = msoTrue '縦横比を固定
'.Height = '画像の高さ 縦横比を固定なので不要、Heightで指定の場合Width不要
.Width = 400 '画像の幅 単位はピクセルのため、cmに変換したい場合は 0.03527778 で割ること。
.Top = 200 'スライド上からの距離 単位はピクセルのため、cmに変換したい場合は 0.03527778 で割ること。
.Left = 100 'スライド左からの距離 単位はピクセルのため、cmに変換したい場合は 0.03527778 で割ること。
End With
End Sub
---<end of code>--
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
連投申し訳ありません。
#2で不要なコードの削除を忘れ、さらにご質問にないコードを加えてしまって
判り難くしてしまいました。
ご質問の場合、
Sub graph_size_adjust()
With ActiveWindow.Selection
.ShapeRange.LockAspectRatio = msoTrue '縦横比を固定
'.ShapeRange.Height = '画像の高さ 縦横比を固定なので不要、Heightで指定の場合Width不要
.ShapeRange.Width = 400 '画像の幅 単位はピクセルのため、cmに変換したい場合は 0.03527778 で割ること。
.ShapeRange.Left = (.SlideRange.Master.Width - .ShapeRange.Width) / 2
.ShapeRange.Top = (.SlideRange.Master.Height - .ShapeRange.Height) / 2
End With
End Sub
となります。
一連のご質問の回答で混乱させてしまっているかも、と思い
再回答しました。
不明な点があれば、補足などでご質問ください。
下記は、ついでにと言うと失礼かもしれませんが、参考に成ればと思います。
Powerpointに限ったことではないと思いますが、Shapeオブジェクトを特定(対象に)する場合、
Selection <選択している>、Shapes(1)<オブジェクトのインデックス>
Shapes("名前") <オブジェクトの名前> などで指定する方法があります。
インデックスや名前を使用する場合は、スライドを明示するようにします。
例:ActivePresentation.Slides(1).Shapes("hoge")
アクティブなプレゼンテーションの初めの(インデックス1)スライドのhogeと言う
名前のShapeオブジェクト を指します。
No.2
- 回答日時:
投稿後気が付きました。
>下記をどう改造すれば良いでしょうか
改造でしたね。(付け加えた部分(If~)もありますが、不要であれば削除してください)
Sub graph_size_adjust()
With ActiveWindow.Selection
.ShapeRange.LockAspectRatio = msoTrue '縦横比を固定
'.ShapeRange.Height = '画像の高さ 縦横比を固定なので不要、Heightで指定の場合Width不要
.ShapeRange.Width = 400 '画像の幅 単位はピクセルのため、cmに変換したい場合は 0.03527778 で割ること。
'Shapeの巾もしくは高さがスライドサイズを超える場合、スライドサイズの該当方向80%に合わせる(不要かも知れませんが)
If .SlideRange.Master.Width < .ShapeRange.Width Then .ShapeRange.Width = .SlideRange.Master.Width * 0.8
If .SlideRange.Master.Height < .ShapeRange.Height Then .ShapeRange.Height = .SlideRange.Master.Height * 0.8
.ShapeRange.Top = 200 'スライド上からの距離 単位はピクセルのため、cmに変換したい場合は 0.03527778 で割ること。
.ShapeRange.Left = 100 'スライド左からの距離 単位はピクセルのため、cmに変換したい場合は 0.03527778 で割ること。
.ShapeRange.Left = (.SlideRange.Master.Width - .ShapeRange.Width) / 2
.ShapeRange.Top = (.SlideRange.Master.Height - .ShapeRange.Height) / 2
End With
End Sub
No.1
- 回答日時:
こんにちは、
.Selectionなので同じような感じで
Shapeを選択する必要がありますが、
Sub Sample()
With ActiveWindow.Selection
'Selectionエラー(不明のメンバー回避のため)Shapeを選択していない場合処理を終了します
If .Type = ppSelectionNone Or .Type = ppSelectionSlides Then
MsgBox "Shapeを選択してください。"
Exit Sub
End If
'スライドのセンターへ移動(メインコードは2行です)
.ShapeRange.Left = (.SlideRange.Master.Width - .ShapeRange.Width) / 2
.ShapeRange.Top = (.SlideRange.Master.Height - .ShapeRange.Height) / 2
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「彡」って文字はなんという文...
-
セル内の文字列が日本語か英語...
-
EBCDIC⇒SJIS変換の方法
-
COBOLのデータ型
-
ExcelVBA実行後に時々落ちる
-
VS 2008(VB.NET)
-
std::stringからLPCWSTR型への変換
-
C言語で16進数のunicodeを文字...
-
CString ←→ BSTRの変換について
-
COBOLによる全角・半角混...
-
Editボックスから値を取り出す方法
-
画像データ(png)をcsvファイル...
-
C++でEUC-JPをSJISに変換したい。
-
VB.NETで子ウィンドウの...
-
ふりがなをアルファベット化す...
-
フォームのコントロールのバッ...
-
マルシー(著作権表示マーク)の...
-
latin-1 (ISO-8859-1)への変換
-
コンソールプログラムで10進の...
-
CASLⅡ 文字データから数値デー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「彡」って文字はなんという文...
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
std::stringからLPCWSTR型への変換
-
ExcelVBA実行後に時々落ちる
-
VS 2008(VB.NET)
-
Symfowareでのデータ型変換につ...
-
2バイト文字をJEFからSJISに変...
-
COBOLによる全角・半角混...
-
VB.NETのコンソールアプリケー...
-
フォームのコントロールのバッ...
-
ふりがなをアルファベット化す...
-
sedで日本語の置換方法について
-
PL/SQLでSJISの文字コードを取...
-
数字5桁文字コード?
-
画像データ(png)をcsvファイル...
-
CString ←→ BSTRの変換について
-
英数字を含む文字列(0-9,A-Z)...
-
error C2679 がとれません><
-
RubyでUTF8のコード値を文字に...
おすすめ情報