
VBScriptでExcelのグラフを書式保持したままPowerPointに
貼り付けようとしています。
1つのスライドの中に9つShapeがあり、8つ目に貼り付けます。
----------------------------------------------------
set oPpp = CreateObject("PowerPoint.Application")
oPpp.ActivePresentation.slide(1).select
oPpp.ActivePresentation.slide(1).shape.item(8).select
oPpp.ActivePresentation.slide(1).shape.paste
----------------------------------------------------
をしたら図としては上手く貼り付けられたのに
書式を保持しようとしたら
----------------------------------------------------
set oPpp = CreateObject("PowerPoint.Application")
oPpp.ActivePresentation.slide(1).select
oPpp.ActivePresentation.slide(1).shape.item(8).select
oPpp.ActivePresentation.slide(1).shape.pastespecial 0
----------------------------------------------------
エラーが起きました。
書式を保持したままExcelのグラフを保持するコードって
ありませんか?
ご存知の方、教えてください。
No.2ベストアンサー
- 回答日時:
#1です。
サンプル付け忘れましたプロシージャではありません
Dim ptApp As Object, ptPrs As Object, ptSlide As Object
Dim s As Integer
Dim x As Double, y As Double, h As Double, w As Double
Set ptApp = CreateObject("PowerPoint.Application")
ptApp.Visible = True
ptApp.Activate
'"C:\Desktop\XX.pptx" 仮Filepath
Set ptPrs = ptApp.presentations.Open("C:\Desktop\XX.pptx")
Set ptSlide = ptPrs.Slides(1)
ptSlide.Select
'以下該当部分
s = ptSlide.Shapes.Count
Sheet1.ChartObjects(1).Chart.ChartArea.Copy 'Excel Chart
ptApp.CommandBars.ExecuteMso ("PasteExcelChartSourceFormatting")
'ループがないと正しく貼り付けシェイプを認識しない
Do
DoEvents
Loop Until ptSlide.Shapes.Count > s
'貼り付け終了
'以下シェイプ操作
With ptSlide.Shapes(8)
x = .Top
y = .Left
h = .Height
w = .Width
.Delete
End With
With ptSlide.Shapes(ptSlide.Shapes.Count)
.Top = x
.Left = y
.Height = h
.Width = w
End With
ptApp.CommandBars.ReleaseFocus
No.1
- 回答日時:
こんばんは
あまり知識はありませんが、、
>書式を保持したままExcelのグラフを貼り付ける
Excel側のVBAだと出来なかったような記憶があります。
Excelの標準モジュールに書いて実行、PowerPointを開き
インスタンスされたPowerPointVBAを使う、、みたいな事だったかと、、
あまり良く覚えていませんが、
自身で昔作ったものを見つけたので、一応サンプルとして掲示します。
>1つのスライドの中に9つShapeがあり、8つ目に貼り付けます。
既存の8つ目のShapeは削除して代わりに同じ位置同じサイズで貼り付けるで良いでしょうか?
サンプルは、グラフのあるExcel側シートオブジェクトを
オブジェクト名Sheet1としています。グラフインデックスは1です
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
Excelでフィルタをかけると警告...
-
エクセルのVBAの標準モジュール...
-
テキストボックス中の文字列の...
-
実行時エラー 3265「要求された...
-
ある文字列が全て数字であるか...
-
エクセルVBAで配列内に空白デー...
-
エクセルVBAでcode128のバー...
-
アクセスにてオブジェクト名変...
-
CreateObjectとGetObjectの違い
-
Shell.ApplicationのNameSpace...
-
オートメーションエラーについて
-
VBScriptでファイルの日時順(降...
-
Excel VBAでWordの複数ファイル...
-
EXCEL VBAで標準モジュール内...
-
VBAで既に開いている別アプリケ...
-
VBAで作成するメール(開封確認...
-
オブジェクト変数またはWITHブ...
-
ステップインで実行しても中断...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
テキストボックス中の文字列の...
-
エクセルのVBAの標準モジュール...
-
Excelでフィルタをかけると警告...
-
実行時エラー 3265「要求された...
-
上下の位置揃えについて
-
ExcelVBAでのNZ関数について
-
VBAで既に開いている別アプリケ...
-
VBAで Set wb = Sheets(1).Cop...
-
AccessVBAで「dim dbs as datab...
-
EXCEL VBA オートシェイプナン...
-
オブジェクト変数またはWITHブ...
-
[VBA]CDOメッセージ送信エラー
-
エクセルマクロエラー「'Cells'...
-
findメソッドの変数について
-
オブジェクトが見つかりません
-
ある文字列が全て数字であるか...
-
オブジェクト変数の取得について
-
CreateObjectとGetObjectの違い
おすすめ情報