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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
「彡」って文字はなんという文...
-
セル内の文字列が日本語か英語...
-
ExcelVBA実行後に時々落ちる
-
Excel vba で1と10を正確に判断...
-
コード変換について
-
VisualBasic6からVB2005に移行...
-
std::stringからLPCWSTR型への変換
-
C言語でUTF-8コードで読み込ん...
-
RubyでUTF8のコード値を文字に...
-
adobe acrobat reader 日本語表...
-
VS 2008(VB.NET)
-
XMLデータの中の改行コードにつ...
-
32ビットプログラムを64ビット...
-
VB.NET TextBoxへの入力をキャ...
-
画像ファイル等→16進
-
「髙(はしごたか)」を文字コー...
-
EBCDICへの変換
-
URLのUTF-8からShift-JISへのデ...
-
英数字を含む文字列(0-9,A-Z)...
マンスリーランキングこのカテゴリの人気マンスリー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のコード値を文字に...
おすすめ情報