VBからPowerPointのマクロを実行する方法
- VBを使用してPowerPointのマクロを実行する方法について教えてください。
- Excelで作成したサンプルデータのグラフをPowerPointで表示する方法についても教えてください。
- Windows XP環境でVB6とPowerPoint 2000を使用しています。
- ベストアンサー
VBからPowerPointのマクロを実行する方法
代記の通りなのですが、VBを利用して、PowerPointのマクロを実行したいのですが、開くところは分かるのですが、実行する記述が分かりません。 どなたかヒントになることを教えていただけないでしょうか? また、マクロの内容なのですが、EXCELで作ったサンプルデータの内容のグラフを表示したいのですが、マクロ機能を使ってデータのインポートを行ったところ、インポート部分のマクロのみ記述されませんでした。 こちらの方もどなかたヒントになることをご存知の方がおりましたアドバイスをいただけると幸いです。 よろしくお願いします。 環境:WIN_XP VB6 POWERPOINT 2000
- masaichi1212
- お礼率74% (29/39)
- Visual Basic
- 回答数5
- ありがとう数5
- みんなの回答 (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などご存知でしたら教えていただきたく思います。
関連するQ&A
- VBでPowerPointの機能にある「WEBとして保存」を実行したい
VBで作ったEXEを実行すると、PowerPointの機能にある「WEBとして保存」が実行され HTMLファイルを生成するといったものを作りたいのです。 VBでPowerPointのマクロなどの機能を実行が出来ますか? また、それ以外の方法をご存知の方いらっしゃいましたら、教えて下さい。 よろしくお願いします。
- 締切済み
- Visual Basic
- VBからマクロの実行について
下記のようにVBよりエクセルマクロの実行を行っています。 マクロに引数を持たしたいのですが、以下のように記述すると 記述エラーが発生します。 引数をもっているマクロはVBから呼び出すことはできないのでしょうか? よろしくお願いいたします。 引数を持たせない場合はエラーが起こらない objExcl.Run ("Macro1.xls" & "!" & "Macro1") マクロ側に引数を持たして、以下のように記述するとエラーになる objExcl.Run ("Macro1.xls" & "!" & "Macro1(引数)")
- ベストアンサー
- Visual Basic
- EXCELマクロでVB6.0のコードを使う方法
OSはWin XP Home, EXCEL2002を使用しています。 又、開発ツールはVB6.0とVB.Netの両方を持っています(持っているだけで、ほとんど使ったことはありません)。 現在、EXCELでマクロを作っているのですが、足りない機能があり、知り合いから「自由に使っていいよ」という事でVB6.0のソースコードをもらいました。 このソースコードは単体で動かすと、自分の欲しい機能が全て含まれています。これをうまくエクセルマクロに取り込める方法はないでしょうか? 受け取ったソースコードを私が理解できれば、EXCELで動くように書き換えられるのですが、内容が難しいため実行不可能な状況です。 何かいいアドバイスがあればお願いいたします。
- ベストアンサー
- オフィス系ソフト
- PowerPointからExcelのマクロを実行
PowerPointのマクロを利用して、Excelを開く事はできたのですが、Excelのauto_openは実行されません。 ExcelであればApplication.Run "****.xls!macro"で呼び出す事ができるのですが、それに相当する事をPowerPointのマクロからやりたいのです。 ご教示いただければ幸いです。
- 締切済み
- オフィス系ソフト
- PowerPointのマクロについて
PowerPointのマクロについて質問です。 実践したいのは、 『ボタン(オブジェクト)をクリックすると、吹き出しが表示される』 というものです。 「オブジェクトの動作設定」-「マウスのクリック」-「マクロの実行」 で出来ると思うのですが、VBでマクロが書けません… どなたかご存知の方、ご教授いただけると幸いです。
- 締切済み
- オフィス系ソフト
- エクセル,VBの実行課程を動画で保存可能?
VBで作成したプログラムの実行課程を動画として保存できますか? エクセル2003およびVB 6.5を使用しているものです.エクセルでVBを起動し,プログラムを書き込み,エクセル上で実行させました.その際,実行課程において値が変化するセルをグラフ化したため,そのエクセルのグラフが実行課程において動くようになります.実行課程を他人にわかりやすく説明するために,その実行中におけるエクセルのグラフを動画にしてPowerPointなどに載せたいのですが,可能でしょうか? ややこしい話で申し訳ないですが,どなたか解答お願いします.
- ベストアンサー
- オフィス系ソフト
- エクセルのマクロ
こんにちは。 今悩んでいます。 VB6.0で、電圧計、電流計を制御して、VBからエクセルを起動、その値をVBでエクセルにデータを送り、グラフを作るのですが。 グラフを作る作業が、同じ作業なので、エクセルのマクロを使い、グラフを作成しようとしていたのですが・・・。 どのエクセルのファイルからでもできるように、個人用のマクロブックで、グラフを作成したのですが、VBからエクセルを起動し、データの転送して、グラフをマクロで作成しようと思ったら、マクロがないんです。 しかし、デスクトップにあるエクセルのショートカットから起動してみると、マクロがあるのです。 VBから起動したエクセルでは、マクロは使えないんでしょうか? 詳しい方よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBからエクセルマクロを実行したい
VB2008で コマンドボタンを押すと 現在開いているエクセルファイル(test.xls)のマクロ1を実行させることは可能でしょうか? できればコードを教えていただける助かるのですが、、、 よろしくお願いします。
- ベストアンサー
- Visual Basic
- エクセルで、VBマクロを使い、cellの内容が変更されたタイミングでマクロを実行したいです
エクセル上のVBマクロで、cellの内容が変更されたときに、マクロを実行し、同時にどのセルが変更されたかを取得したいです。 よい方法があれば教えて頂きたいです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VB6からEXCELマクロの終了を判断する方法を教えてください。
VB6からEXCELマクロの終了を判断する方法を教えてください。 VB6とEXCEL(VBAも含む)を使って次のような流れの処理を行うソフトを作っています。 そこでどうしてもEXCELマクロの終了をVB6から判断する必要があり、方法を教えて頂けないでしょうか。 1)VB6でEXCELファイルを起動 2)VB6からセルA1に10,A2に20を代入 3)VB6からEXCELファイル内のマクロをコール 4)マクロはA1+A2の計算を行いA3に代入(30) 5)VB6からA3の値を読み込む (実際にはマクロは複雑な処理をします。) 1)~5)の処理を5000回程度行います。 VB6から送られるデータは毎回変わり、EXCELとマクロで計算させたデータを回収してテキストファイルに書き出します。 一通りのプログラムは完成したのですが、計算したデータを見ると10+20が1.99999とか15.51414とかおかしい結果になっています。 もしかしたらマクロの実行が終わっていない段階でVB6がデータを拾ってしまっている??と考え、マクロの終了をVB6で判断してからデータを回収するようにしたいと思っています。 何か方法はないでしょうか。(または他に間違っているところがあるのでしょうか。) 長文ですみません。よろしくご教示ねがいます。
- ベストアンサー
- Visual Basic
お礼
あああああああああああああ!!!!!!!!! 出来てるぅぅぅぅぅぅ!!!!! すげぇぇぇぇぇぇぇ!!!!!!! まさか本当に出来るとは思いませんでした、大変感謝をしております。 長い間お付き合いしていただいてありがとうございました2chさん! 参考にさせていただいて製作させていただきます 本当にありがとうございました。 またなにかありましたらよろしくお願いします。 では。