おけましておめでとうございます。
本年もよろしくお願いします。
で、本題ですが、
(Win95でExcel2000とPowerPoint2000を使用)
EXCELのデータベースの表を順々にPowerPointのテキストボックスへ
コピーして印刷するためにVBAを作成したいと思ってます。
(印刷形式がPowerPointのため)
ここには作成できるんですが、両者のVBAをどのように
連携させるかわかりません。
よろしくご教授ください。
また、PowerPointのVBAでマクロの記録を使わず、オブジェクト名
(("Text Box 1")とか)を知る方法もあわせてよろしくご教授ください。
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メソッドでコレクションから選ばれたオブジェクトの番号が編集や保存によって並べ替えられるため、他のプロパティを使って特定する必要があります。
さっそくのご返答ありがとうございます。
CreateObjectでヘルプをひっぱり試してみたいと思います。
またわからないことがありましたらお願いします。
No.2
- 回答日時:
すでにお気づきかもしれませんが、お恥ずかしい話
CreateObjectについて述べながら、ファイルを開く方のGetObjectを例に挙げてしまいました。両方をヘルプで調べてみてください。
恥の上塗りにならないよう簡単に訂正しておきます。
実際に使ってみて動くことがわかりました。
どうもありがとうございます。
で、補足として書いた
PowerPointのVBAでマクロの記録を使わず、オブジェクト名
("Text Box 1")とか)を知る方法がわかる方いないでしょうか?
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プロパティ(書かれているべき文字列)などで判別する必要があります。
この回答への補足
そうすると、オブジェクト名はVBAを使わずにパワーポイント上だけでは
確認しようが無いと言うことでしょうか。
また、ユーザー側では勝手につけられないって事でしょうか。
No.4ベストアンサー
- 回答日時:
>オブジェクト名はVBAを使わずにパワーポイント上だけでは確認しようが無いと言うことでしょうか。
絶対できないとまでは断言できる自信はないのですが、少なくともその方法は知りません。
オブジェクト名はVBAを使えば変更することはできます。
Application.ActiveWindow.Selection.SlideRange.Shapes.Item(1).Name = "New Name 1"
だだ、この設定した名称が勝手に変更されることはないのかどうか自信がありません。少なくとも自動的に生成した「オブジェクト名」は勝手に変更されてしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでPowerPointからExcelにレイアウト通りに出力する 4 2023/07/05 12:22
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) PowerPoint VBA で画像の鮮明度を変更する方法がわかりません 2 2023/03/24 13:34
- Visual Basic(VBA) VBでExcelの表形式の様なデザインを作りDBと連携させる。 4 2023/02/28 11:39
- その他(プログラミング・Web制作) Pythonでexcelのvbaを作成、実行する方法について Pythonで表の自動集計プログラムを 3 2022/07/09 09:58
- 大学・短大 今年に大学入学する者です。大学の授業でExcelやWordやPowerPointは使いますか? もし 5 2023/03/12 20:21
- その他(コンピューター・テクノロジー) WordやPowerPoint、Teamsの使い方に詳しい人教えてください。 高校生女です。夏課題で 2 2022/08/18 22:34
- インターンシップ インターンシップについてです。大学3年生です。 再来週にインターンシップに参加するのですがその際、M 2 2022/10/13 12:17
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
VBAで既に開いている別アプリケ...
-
実行時エラー 3265「要求された...
-
Excelでフィルタをかけると警告...
-
エクセルマクロエラー「'Cells'...
-
エクセルのVBAの標準モジュール...
-
VBAについてです。 初心者です...
-
EXCEL VBA オートシェイプナン...
-
UserForm1.Showでエラーになり...
-
テキストボックス中の文字列の...
-
ある文字列が全て数字であるか...
-
エクセルVBAでFor each文
-
横軸ラベルの追加に関するエラ...
-
メモリ解放について(ASP)
-
VBA (Row とRowsの違いについて)
-
VBで引数にDictionaryオブジェ...
-
PowerPointVBAでスライドマスタ...
-
EDINETの情報をEXCELにダウンロ...
-
VBScriptでExcelのグラフを貼り...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
実行時エラー 3265「要求された...
-
エクセルのVBAの標準モジュール...
-
VBAで既に開いている別アプリケ...
-
VBAで Set wb = Sheets(1).Cop...
-
テキストボックス中の文字列の...
-
PowerPointVBAでスライドマスタ...
-
エクセルマクロエラー「'Cells'...
-
VBAからPDFファイルにパスワー...
-
Excelでフィルタをかけると警告...
-
オブジェクトが見つかりません
-
ある文字列が全て数字であるか...
-
EXCEL VBA オートシェイプナン...
-
[VBA]CDOメッセージ送信エラー
-
VBAで作成するメール(開封確認...
-
VBAについてです。 初心者です...
-
VBA:オートシェイプの線の長...
-
VBで引数にDictionaryオブジェ...
-
AccessVBAで「dim dbs as datab...
おすすめ情報