添付ファイルのようなPowerPointのファイルがあります。
これを読み込んでファイル名の部分に実際の画像ファイルを表示してくれるようなプログラムを作成したいと考えてます。また、CSVの場合はCSVを読み込んで表を出せたらと考えてます。また、画像ファイルや表を出したファイルを新規ファイルとして保存したいです。すいませんが、お詳しい方いらっしゃいましたらご教授頂きたくよろしくお願いいたします。画像ファイルやCSVファイルはPowerPointのファイルと同じところに配置します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
自己解決
TextFrameを一旦消して、AddPictureで画像が入ることは確認しました。
ただ、shapeをループして回していた場合に、今回変更したshape(TextからPicture)を参照した際に
PictureではなくTextと判断しておかしな処理を行ってました。そのため、shapeのループを再度やり直すような処理に変えたところうまくいきました。お騒がせしました。
投稿2020/08/06 00:25
総合スコア6
0
エクセル+パワーポイントは初めてなので少し適当で申し訳ありません。
サンプルを作成してみました。
あくまでサンプルですので、画像サイズ調整が甘いなどの問題点があることをご了承ください。
このようなエクセルの表があるとしてパワーポイントを新規起動してタイトルと画像を挿入するという
サンプルになります。参考にならないと思いますが申し訳ありません。
VBA
1Sub ExcelToPowerPoint() 2Dim pp, ps, sl As Object 3Dim i, rowCount As Long 4Dim r, c As Object 5Dim rng As Range 6 7’VBA 参照設定でmicrosoft powerpoint XX object Libratyにチェックしてください。 8 9Set rng = Sheets("data").Range("B2:B10") 10 11Set pp = CreateObject("PowerPoint.Application") 12 13i = 1 14 15With pp 16 17 .Visible = True 18 19 Set ps = .Presentations.Add 20 21 For Each r In rng.Rows 22 23 For Each c In r.Columns 24 25 i = i + 1 26 27 With ps.Slides 28 29 Set sl = .Add(Index:=.Count + 1, Layout:=13) ' スライド追加 Layout参考 https://www.relief.jp/docs/ppt-vba-slide-layout-list.html 30 sl.Shapes(1).TextFrame.TextRange.Text = c.Text ' タイトルシェイプにループ時のカレントセルの内容を挿入 31 Set shp = sl.Shapes.AddPicture(Filename:=Sheets("data").Range("C" & i).Value, _ 32 LinkToFile:=False, SaveWithDocument:=True, Left:=0, Top:=0) 33 34 With shp 35 .LockAspectRatio = True '縦横比を固定 36 37 If .Width > .Height Then '挿入した画像を調整 38 .Width = ps.PageSetup.SlideWidth / 1.5 39 Else 40 .Height = ps.PageSetup.SlideHeight / 1.5 41 End If 42 43 '.Select 44 End With 45 46 End With 47 Next c 48 Next r 49 50 Set sl = Nothing 51 Set ps = Nothing 52End With 53Set pp = Nothing 54End Sub
データ便に一式サンプルをUPしておきます。
必要であれば参照ください。下記URLにアクセスし同意するにチェックするとダウンロードできます。
投稿2020/07/29 12:19
総合スコア383
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/29 12:51
2020/07/29 12:54
2020/07/29 13:35
2020/07/29 13:54 編集
2020/07/29 14:04
2020/07/29 14:08 編集
2020/07/29 23:51
2020/07/30 01:27
2020/07/30 06:38
2020/07/30 07:14
0
PowerPointのVBAで以下の操作がわかれば、画像の追加ぐらいはできそうですね。
CSV→表はCSVの解析が必要なので、対象のCSVの形式によって難度が変わりそうです。
Presentation
・Slide
の取得方法Shape
(図形)の取得方法(画像を見る限りプレースホルダーを取得してもいいかも?)- 図形の中の文字列の取得方法
- 図形の追加方法
PowerPointのVBA操作参考サイト
投稿2020/07/29 10:25
総合スコア2166
0
直接の回答ではありませんが。
ファイル名とそれ以外はどのように区別しようと考えておられますか?
目的によっては、Marp for VSCode など、PowerPoint 以外の手段も視野に入れた方が良いかもしれません。
- 【VS Code + Marp】Markdownから爆速・自由自在なデザインで、プレゼンスライドを作る - Qiita
- Visual Studio Codeで作るLT資料 〜 脱パワーポイント - Qiita
- marp-team/marp-vscode: Marp for VS Code: Create slide deck written in Marp Markdown on VS Code
これだと csv は表にしたいは実現できないかもしれませんが。
投稿2020/07/28 14:33
総合スコア1773
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/29 00:19
2020/07/29 11:36
2020/07/29 14:01
0
もともと質問がpythonでなかったですか?
そこまでpowerpointを自動化する必要がありますか?
世の中A41枚にまとめるとか、会議をしないとか
分厚い提案書を読まないとか色々ありますので、
個人的はどうでもいい話題です(すみません)。
投稿2020/07/29 00:02
編集2020/07/29 00:04総合スコア383
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。