質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

3391閲覧

PowerPointの複数結合で背景、デザインもコピーをするVBA

phoenix11

総合スコア5

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/01/13 15:45

編集2020/01/15 09:44

VBAの全くの素人です。
https://teratail.com/questions/12442こちらのサイトをみてPowerPointの結合のマクロを実行することができました。
複数の結合で、いろいろな背景色であったりデザインで一緒にコピーしたいのですが
わかりませんでした。以下のVBAにどのように入れたら良いでしょうか?
イメージとしては、PowerPointから新しいスライド→スライドの再利用→元の書式を保持するということを、自動化したいのです。
よろしくお願いします。
PowerPointの2013 windows8.1で実施しています。

PowerPointの VBA

1Sub 結合のマクロ() 2 Dim openFilePath As String 3 Dim fn As String 4 Dim f As Object 5 Dim FSO As Object 6 Set FSO = CreateObject("Scripting.FileSystemObject") 7 Dim myPtt As Presentation 8 9 'C:\Users\Windows User\Desktop\PowerPointのマクロ 10 Set myPtt = ActivePresentation 11 12 '検索フォルダ 13 openFilePath = "C:\Users\Windows User\Desktop\PowerPointの元" 14 15 'フォルダ内のファイルを取得 16 For Each f In FSO.GetFolder(openFilePath).Files 17 18 'ファイル名の取得 19 fn = f.Name 20 21 '拡張子 pptx で判別 22 If FSO.GetExtensionName(openFilePath & "\" & fn) = "pptx" Then 23 24 'コピー元ファイルを開く 25 Presentations.Open (openFilePath & "\" & fn) 26 27 With ActivePresentation 28 'コピー元から全スライドをコピー 29 Presentations(fn).Slides(1).Copy '←スライド1のみコピー。 30 'コピー元を閉じる 31 .Close 32 End With 33 34 'コピー先へ貼り付け 35 myPtt.Slides.Paste 36 37 End If 38 39 Next f 40 41 Set FSO = Nothing 42 43End Sub 44 45 46 47コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/01/14 11:37

・コードは「コードの挿入」で記入してください。 ・”ここのサイトをみて”とはどのサイトですか?
phoenix11

2020/01/15 09:44

ありがとうございます。編集しました。よろしくお願いします。
guest

回答1

0

ベストアンサー

下記サイトが参考になりそうです。

スライドをコピーして新規プレゼンテーションを作成するパワポマクロ

下記が書式のコピー部分です。

vba

1With prs_new.Slides.Paste 2 .Design = sld_org.Design 3 .ColorScheme = sld_org.ColorScheme 4 .DisplayMasterShapes = sld_org.DisplayMasterShapes 5 .FollowMasterBackground = sld_org.FollowMasterBackground 6End With

どうでしょうか?


【追記】下記でどうでしょうか?(質問のコードの抜粋の修正版です)

vba

1'フォルダ内のファイルを取得 2For Each f In FSO.GetFolder(openFilePath).Files 3 4 'ファイル名の取得 5 fn = f.Name 6 7 '拡張子 pptx で判別 8 If FSO.GetExtensionName(openFilePath & "\" & fn) = "pptx" Then 9 10 'コピー元ファイルを開く 11 Presentations.Open (openFilePath & "\" & fn) 12 set sld_org = ActivePresentation.Slides(1) 'スライド1を指定 13 sld_org.Copy 14 15 'コピー先へ貼り付け 16 With myPtt.Slides.Paste 17 .Design = sld_org.Design 18 .ColorScheme = sld_org.ColorScheme 19 .DisplayMasterShapes = sld_org.DisplayMasterShapes 20 .FollowMasterBackground = sld_org.FollowMasterBackground 21 End With 22 End If 23Next f

投稿2020/01/15 11:23

編集2020/01/16 12:01
meg_

総合スコア10577

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

phoenix11

2020/01/16 11:26

ありがとうございます。本当に素人で申し訳ないのですが、最初に記載した 最初に記載したコードの sub結合マクロ ~ End Sub のどこの部分に上記コード with prs_new・・・・End withを入れたら良いのでしょうか? 色々と試しましたが、デバッグになったり、エラーになったりしてできません。
phoenix11

2020/01/18 08:18

もう少し時間をください。確認はしていますが、なかなか難しくご迷惑おかけし申し訳ございません。
phoenix11

2020/01/18 09:04

ありがとうございます。解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問