
No.2ベストアンサー
- 回答日時:
Sub pic_Export2()
Const Bairitu As Long = 10 '倍率[調整してください]
Dim n As Integer
Dim preName As String
Dim myName As String
Dim Sld As Slide
Dim Shp As Shape
preName = ActivePresentation.FullName
preName = Left(preName, InStrRev(preName, ".") - 1)
n = 1
For Each Sld In ActivePresentation.Slides
For Each Shp In Sld.Shapes
With Shp
If .Type = msoPicture Or .Type = msoAutoShape Then
myName = preName & n & ".png"
Do Until Dir(myName) = ""
n = n + 1
myName = preName & n & ".png"
Loop
.Export myName, ppShapeFormatPNG, .Width * Bairitu, .Height * Bairitu
End If
End With
Next
Next
MsgBox "完了"
End Sub
しかし、もっと簡単な方法があります。
ファイル
→ページ設定
で、現在は
幅25.4
高さ19.05
のようになっていると思います。
[だいたいA4サイズ]
これをユーザー設定で大きくしたりするのです。
幅:高さの比が4:3に保たれるように。
するとスライド上のオブジェクトもそれに比例して
大きくなったりします。
その後でpic_Export。
PowerPoint VBAの本、サイトはあまり充実していないんですよね。
私がよくコードを書いているのは、
Excel VBAなどで有名なサイト,moug
http://www.moug.net/faq/viewforum.php?f=7
ご回答いただき、ありがとうございます。本当に助かりました。
mougのほうも参考にしてみたいと思います。
ありがとうございました。
No.1
- 回答日時:
PowerPoint VBAなら、
Sub pic_Export()
Dim n As Integer
Dim preName As String
Dim myName As String
Dim Sld As Slide
Dim Shp As Shape
preName = ActivePresentation.FullName
preName = Left(preName, InStrRev(preName, ".") - 1)
n = 1
For Each Sld In ActivePresentation.Slides
For Each Shp In Sld.Shapes
With Shp
If .Type = msoPicture Or .Type = msoAutoShape Then
myName = preName & n & ".png"
Do Until Dir(myName) = ""
n = n + 1
myName = preName & n & ".png"
Loop
.Export myName, ppShapeFormatPNG
End If
End With
Next
Next
MsgBox "完了"
End Sub
※VBでやるときは、CreateObjectで
PowerPointインスタンスを作って、
あとは上とほぼ同じです。
ただ、組み込み定数ppShapeFormatPNG
がオブジェクトブラウザになかったので
いったいいくつの数値なのかわかりません。
そこだけ問題になるかもしれません。
ご自分で調べてください。
この回答への補足
>n_na_ttoさん
ご回答、ありがとうございます。助かります。
もう少し教えていただければと思うのですが...
.Export myName, ppShapeFormatPNG の行で、引き続いて
ScaleWidth、ScaleHeightを指定して、画像サイズを決めているのだと
思うのですが、指定の仕方ってどうなっているのでしょうか?
例えば512px*512pxで保存したいとして、単純に
.Export myName, ppShapeFormatPNG, 512, 512 と書いたのでは
どうやらだめ(とても小さい画像ができてしまいました)…
なようですよね。
ディスプレイ画面の解像度とかが絡んでいるのでしょうか?
ご教授いただければと思います。
あと、自分でもPowerPoint VBA等についてぼちぼち勉強してみたいなと
思うのですが、どのあたり(サイト、書籍etc)を参考にするとよいでしょうか?よろしければ教えていただけないでしょうか?
どうぞ、よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(パソコン・スマホ・電化製品) 拡張子の選択方法について 4 2022/09/22 22:04
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Excel(エクセル) excelで可視セルのみ置換 3 2022/08/04 11:02
- Excel(エクセル) エクセルでファイル保存時に複数シートのオートフィルタを全て解除したい 1 2023/05/10 13:23
- Visual Basic(VBA) VBA同じシートの別ブックに転記していく方法 3 2022/11/28 12:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel: ファイル名になぜ、[...
-
CSVファイルの特定行の削除
-
エクセルのファイル:「自分」が...
-
複数のExcelファイルにある同名...
-
彼女の過去の恋愛に嫉妬してし...
-
docxをmht形式で保存したファイ...
-
エクセルの拡張子XLSのファイル...
-
batでファイル名を変更したい(...
-
vbsからのExcelマクロ呼び出し...
-
iCloud for Windowsをアンイン...
-
このファイルは外部のエディタ...
-
WINDOWS CMDからゴミ箱のファ...
-
ファイルが移動してもリンクの...
-
フォルダ内の複数のファイルの...
-
EXCELVBAにて文字列にして「01...
-
CSVファイルの暗号化
-
VBAにおいて、ファイルの移...
-
VBA ファイル一覧を取得して全...
-
5000個のtiffファイルをpdfへ変...
-
Googleドライブについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSVファイルの特定行の削除
-
彼女の過去の恋愛に嫉妬してし...
-
Excel: ファイル名になぜ、[...
-
エクセルのファイル:「自分」が...
-
ファイルが移動してもリンクの...
-
iCloud for Windowsをアンイン...
-
EXCELVBAにて文字列にして「01...
-
WINDOWS CMDからゴミ箱のファ...
-
vbsからのExcelマクロ呼び出し...
-
[Unity]シーンファイルの中が消...
-
5000個のtiffファイルをpdfへ変...
-
複数のExcelファイルにある同名...
-
このファイルは外部のエディタ...
-
batでファイル名を変更したい(...
-
フォルダ内の複数のファイルの...
-
docxをmht形式で保存したファイ...
-
FTPのgetとputの使いわけ。
-
Googleドライブについて
-
VBA ファイル一覧を取得して全...
-
エクセル保存終了で一時ファイ...
おすすめ情報