• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelとPowerPointをVBAで連携させる方法)

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

このQ&Aのポイント
  • ExcelとPowerPointをVBAを使って連携させる方法についてご教授ください。
  • VBAを使用してExcelのデータベース表をPowerPointのテキストボックスにコピーして印刷する方法について、ご教授ください。
  • PowerPointのVBAでマクロの記録を使わずにオブジェクト名を知る方法についても教えてください。

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

  • ベストアンサー
  • nta
  • ベストアンサー率78% (1525/1942)
回答No.4

>オブジェクト名はVBAを使わずにパワーポイント上だけでは確認しようが無いと言うことでしょうか。 絶対できないとまでは断言できる自信はないのですが、少なくともその方法は知りません。 オブジェクト名はVBAを使えば変更することはできます。 Application.ActiveWindow.Selection.SlideRange.Shapes.Item(1).Name = "New Name 1" だだ、この設定した名称が勝手に変更されることはないのかどうか自信がありません。少なくとも自動的に生成した「オブジェクト名」は勝手に変更されてしまいます。

awada
質問者

お礼

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

その他の回答 (3)

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.3

オブジェクト名を具体的に取得するには For i = 1 To Application.ActiveWindow.Selection.SlideRange.Shapes.Count name1 = Application.ActiveWindow.Selection.SlideRange.Shapes.Item(i).Name Next i とすればどこかにありますが、問題はItemの何番目が該当するのかということです。この番号は編集や保存によって変化しますので、Textプロパティ(書かれているべき文字列)などで判別する必要があります。

awada
質問者

補足

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

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.2

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

awada
質問者

お礼

実際に使ってみて動くことがわかりました。 どうもありがとうございます。 で、補足として書いた PowerPointのVBAでマクロの記録を使わず、オブジェクト名 ("Text Box 1")とか)を知る方法がわかる方いないでしょうか?

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.1

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メソッドでコレクションから選ばれたオブジェクトの番号が編集や保存によって並べ替えられるため、他のプロパティを使って特定する必要があります。

awada
質問者

お礼

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