- ベストアンサー
VBからPowerPointのマクロを実行する方法
- VBを使用してPowerPointのマクロを実行する方法について教えてください。
- Excelで作成したサンプルデータのグラフをPowerPointで表示する方法についても教えてください。
- Windows XP環境でVB6とPowerPoint 2000を使用しています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
でけた Set msGrf = ppApp.ActiveWindow.Selection.ShapeRange.OLEFormat.Object.Application With msGrf .FileImport "C:\Book1.xls" End With
その他の回答 (4)
- 2ch
- ベストアンサー率51% (64/125)
完全制覇となると、時間がかかりそうなので、ちょっとだけご報告。 Chartオブジェクトを操作するとよいかも? 一発取り込みまでは調査してないけど、値のセットならでけた。 参考: http://oshiete1.goo.ne.jp/kotaeru.php3?q=292031 '宣言に追加 Dim msChart As Chart 'ほにゃららコード 'ほにゃららコード 'ほにゃららコード 'ほにゃららコード 'サイズせっと With ppApp.ActiveWindow.Selection.ShapeRange .Left = 120# .Top = 109.875 .Width = 480# .Height = 320.25 End With 'ここでチャートをげっちゅ Set msChart = ppApp.ActiveWindow.Selection.ShapeRange.OLEFormat.Object 'ここでチャートのデータテーブルに値をせっと msChart.Application.DataSheet.Cells(2, 5) = 10
お礼
なんどもなんどもレスありがとうございます。 確かに2chさんの表記の通りでデータをいじることが出来ました!! なんとか今自分もそこからデータを一括で入れる方法 (データを削除してからインポート)を模索中です。 ありがとうございます。
- 2ch
- ベストアンサー率51% (64/125)
>Microsoft Graph Visual Basic [挿入]→[グラフ] のグラフ?
補足
やりたいことはMicrosoft PowerPointの[挿入]→[グラフ] です。 そしてそのデータ範囲に、自分で作っておいたExcelデータを読み込ませたいのです。 メニューコマンドでいうとグラフを選んだ状態で[編集]→[ファイルのインポート]です。 PowerPointのグラフはMicrosoft Graphの機能を使っているようなのでそこに依存してくるようです。 不完全ですが、自分の作ったプログラムを載せておきます。 グラフの表示までは出来ているのですが、インポートが出来ない状態です。 '参照設定に 'パワポの10ライブラリと 'オフィスの10ライブラリと 'マイクロソフトグラフの10ライブラリを使用しています。 '(OfiiceXP使用時) Option Explicit Private Sub Command1_Click() Dim ppApp As PowerPoint.Application Dim ppWin As PowerPoint.Presentation Dim msGrf As Graph.Application On Error GoTo errGo 'オブジェクトの作成 Set ppApp = New PowerPoint.Application ppApp.Visible = msoTrue AppActivate ppApp Set ppWin = ppApp.Presentations.Add '白紙のスライドを追加 ppWin.Slides.Add Index:=1, Layout:=ppLayoutBlank ppApp.ActiveWindow.Selection.SlideRange.Shapes.AddOLEObject(Left:=120#, _ Top:=110#, Width:=480#, Height:=320#, ClassName:="MSGraph.Chart", _ Link:=msoFalse).Select ppApp.ActiveWindow.Selection.ShapeRange.OLEFormat.Activate With ppApp.ActiveWindow.Selection.ShapeRange .Left = 120# .Top = 109.875 .Width = 480# .Height = 320.25 End With 'エクセルの挿入 'With msGrf ' .Chart = ppApp.ActivePresentation.Slides(1).Shapes(1) 'End With Set msGrf = New Application With msGrf .FileImpor FileName:="C:\新規Microsoft Excel ワークシート.xls" End With 'ファイルの保存 ppApp.ActivePresentation.SaveAs FileName:="C:\プレゼンテーション1.ppt" '終了 ppApp.Quit End errGo: MsgBox Err.Number & vbCrLf & Err.Description End Sub
- 2ch
- ベストアンサー率51% (64/125)
パワポを外部から、初めて呼んでみた。 画面にVBAのエディタが表示されないと、マクロが走らなかった。 これって、仕様か? やってみたソースを載せておく。 VB側 Sub Main() Dim pptApp As Object Set pptApp = CreateObject("PowerPoint.Application") pptApp.Visible = True pptApp.Presentations.Open "c:\てすと.ppt" 'VBEditorの画面を表示する DoEvents Call SendKeys("%{F11}", True) DoEvents Call pptApp.Run("TEST") pptApp.Quit Set pptApp = Nothing End Sub パワポ側 Public Function TEST() As VbMsgBoxResult TEST = MsgBox("メッセージボックスです") End Function
お礼
前回に引き続きありがとうございます2chさん マクロを動かすことは出来ました。 確かにVBEditorも一緒に動いてしまいますね。 特に問題ないのでマクロの方はOKです!! ですが、ファイルのインポートがどうしても出来ません。 Microsoft Graph Visual BasicリファレンスというものにFileImportというメソッドがあるのですが、イマイチ使い方が分かりません。 むーむ、、、使用経験がございましたらアドバイスをいただけると幸いです。
- 2ch
- ベストアンサー率51% (64/125)
VBAなら、エクセルといっしょかな
お礼
ありがとうございます。 マクロはどうにかなりそうなのですが、 EXCELで作ったサンプルデータの内容のグラフを表示という部分がどうしても解決しません。 powerpointのプロパティ一覧など分かりやすいHPなどご存知でしたら教えていただきたく思います。
お礼
あああああああああああああ!!!!!!!!! 出来てるぅぅぅぅぅぅ!!!!! すげぇぇぇぇぇぇぇ!!!!!!! まさか本当に出来るとは思いませんでした、大変感謝をしております。 長い間お付き合いしていただいてありがとうございました2chさん! 参考にさせていただいて製作させていただきます 本当にありがとうございました。 またなにかありましたらよろしくお願いします。 では。