こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ExcelとPowerPointをVBAで連携させる方法

おけましておめでとうございます。
本年もよろしくお願いします。
で、本題ですが、
(Win95でExcel2000とPowerPoint2000を使用)
EXCELのデータベースの表を順々にPowerPointのテキストボックスへ
コピーして印刷するためにVBAを作成したいと思ってます。
(印刷形式がPowerPointのため)
ここには作成できるんですが、両者のVBAをどのように
連携させるかわかりません。
よろしくご教授ください。

また、PowerPointのVBAでマクロの記録を使わず、オブジェクト名
(("Text Box 1")とか)を知る方法もあわせてよろしくご教授ください。

投稿日時 - 2003-01-04 07:57:01

QNo.436794

暇なときに回答ください

質問者が選んだベストアンサー

>オブジェクト名はVBAを使わずにパワーポイント上だけでは確認しようが無いと言うことでしょうか。

絶対できないとまでは断言できる自信はないのですが、少なくともその方法は知りません。

オブジェクト名はVBAを使えば変更することはできます。
Application.ActiveWindow.Selection.SlideRange.Shapes.Item(1).Name = "New Name 1"

だだ、この設定した名称が勝手に変更されることはないのかどうか自信がありません。少なくとも自動的に生成した「オブジェクト名」は勝手に変更されてしまいます。

投稿日時 - 2003-01-10 13:16:26

お礼

どうもありがとうございました。
大変参考になりました。

投稿日時 - 2003-01-11 14:41:47

ANo.4

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

nta

オブジェクト名を具体的に取得するには

For i = 1 To Application.ActiveWindow.Selection.SlideRange.Shapes.Count
name1 = Application.ActiveWindow.Selection.SlideRange.Shapes.Item(i).Name
Next i

とすればどこかにありますが、問題はItemの何番目が該当するのかということです。この番号は編集や保存によって変化しますので、Textプロパティ(書かれているべき文字列)などで判別する必要があります。

投稿日時 - 2003-01-07 19:19:47

補足

そうすると、オブジェクト名はVBAを使わずにパワーポイント上だけでは
確認しようが無いと言うことでしょうか。
また、ユーザー側では勝手につけられないって事でしょうか。

投稿日時 - 2003-01-10 07:43:17

ANo.2

nta

すでにお気づきかもしれませんが、お恥ずかしい話
CreateObjectについて述べながら、ファイルを開く方のGetObjectを例に挙げてしまいました。両方をヘルプで調べてみてください。
恥の上塗りにならないよう簡単に訂正しておきます。

投稿日時 - 2003-01-07 06:58:50

お礼

実際に使ってみて動くことがわかりました。
どうもありがとうございます。

で、補足として書いた
PowerPointのVBAでマクロの記録を使わず、オブジェクト名
("Text Box 1")とか)を知る方法がわかる方いないでしょうか?

投稿日時 - 2003-01-07 18:22:24

ANo.1

nta

Application というオブジェクトがVBAを実行しているExcelやPowerPoint自体を指しますが、そこから他のアプリケーションを呼び出すためにはCreateObject関数を用います。CreateObjectをヘルプで検索してみて下さい。例えば、PowerPointのVBAからExcelのワークシート(シート名Sheet1.xls)のsheet1にあるA1セルの値を呼び出すには

Set ExcelWorksheet = GetObject("SHEET1.XLS")
ExcelWorksheet.Application.Sheets("Sheet1").Cells(1,1)
などとします。一度GetObjectを実行すると後はExcelWorksheetという変数を使ってExcelのシートを制御することができます。

オブジェクト名はNameプロパティで拾うことはできると思いますが、Itemメソッドでコレクションから選ばれたオブジェクトの番号が編集や保存によって並べ替えられるため、他のプロパティを使って特定する必要があります。

投稿日時 - 2003-01-05 07:24:49

お礼

さっそくのご返答ありがとうございます。
CreateObjectでヘルプをひっぱり試してみたいと思います。
またわからないことがありましたらお願いします。

投稿日時 - 2003-01-06 23:29:01

あなたにオススメの質問