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

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

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

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

Q&A

解決済

1回答

1455閲覧

VBAで、xlsx内のグラフをpptxに貼り付け先位置を指定して貼り付けたい

amatsuno

総合スコア54

VBA

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

0グッド

0クリップ

投稿2022/01/04 01:39

編集2022/01/04 04:55

#やりたいこと
VBAを使用して、excelにあるグラフをpptxに貼り付けたい

詳細

Dドライブ直下に、xlsxとpptxがあります
・orgfile.xlsx (シートは、「AAA」「BBB」「CCC」の3つ)
・xlsxの各シートには以下の表があります
AAA → グラフA / グラフB
BBB → グラフc / グラフD / グラフE
CCC → グラフF
・PTsam.pptx (ページは5ページ)

 ・xlsx内から実行(実行ボタン)で処理を実施します

やるべき処理

以下を実現したいと思っています
1)orgfileのシートBBBにあるグラフCを、pptxの4ページ目に貼り付ける
※Ctrl + C → Ctrl + Vと同様の形式で張り付け
2)グラフCは、貼り付け先のpptxで所定の位置(4ページ目の右上あたり)に貼り付ける
3)グラフCは、塗りつぶしをなしにした状態で張り付ける

今できないこと

上記の2)と3)のやり方がわからずにうまくいきません

2)について

 位置の指定の仕方がわからない状態です

3)について

 VBA内で塗りつぶしをなしにしてからコピーして張りつけると、
VBAの処理が失敗します

コード

Sub open_PowerPoint()

Dim ppApp As New PowerPoint.Application
ppApp.Visible = True

Dim ppPrs As PowerPoint.Presentation
Set ppPrs = ppApp.Presentations.Open(ThisWorkbook.Path & "PTsam.pptx")

Dim sl As PowerPoint.Slide

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("BBB")

'ActiveSheet.ChartObjects("グラフC").Activate
'ActiveSheet.Shapes("グラフC").Fill.Visible = msoFalse

ws.ChartObjects("グラフC").Chart.CopyPicture xlScreen, xlPicture
ppPrs.Slides(4).Shapes.Paste

' sl.Shapes(4).Left = 30
' sl.Shapes(4).Top = 50

' .LockAspectRatio = msoFalse
' .Top = 70
' .Left = 0
' .Width = ppW
' .Height = ppH

'ppApp.Quit
'Set ppApp = Nothing

End Sub

上記のコードをどのように記載すればよいのか、
お分かりになられる方、教えてください

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんな感じでどうでしょうか。

VBA

1 With ws.ChartObjects("グラフC").Chart 2 .ChartArea.Format.Fill.Transparency = 1 3 .CopyPicture xlScreen, xlPicture 4 End With 5 6 With ppPrs.Slides(4).Shapes 7 .Paste 8 With .Item(.Count) 9 .Left = 0 10 .Top = 70 11 .LockAspectRatio = msoFalse 12 End With 13 End With

投稿2022/01/04 09:13

jinoji

総合スコア4592

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

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

amatsuno

2022/01/07 01:48

ありがとうございます。 このコードをもとに確認させていただきます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問