ExcelのVBAで、PowerPointのファイルに対し処理を行ないたいと思っています。
処理の前にファイルを選択し、そのファイルが既に開かれていた場合に処理を中断する判定を入れたいと思っているのですが、ファイル選択後に
「実行時エラー429ActiveXコンポーネントは、オブジェクトを作成できません」
というエラーになってしまいます。
「For Each PptFile In」のあとの「PowerPoint.Presentations」の記述に問題があるようなのですが、改善方法をお教えいただけませんでしょうか。
Sub test()
Dim PptApp As PowerPoint.Application
Dim PptFile As Object
Dim myFilename As String
myFilename = Application.GetOpenFilename
Set PptFile = GetObject(, "Powerpoint.Application")
For Each PptFile In PowerPoint.Presentations
If PptFile = Dir(myFilename) Then
MsgBox "指定したファイルは開かれています"
Exit Sub
Else
MsgBox "PowerPointの処理を実行します"
'処理
End If
Next
End Sub
No.1ベストアンサー
- 回答日時:
こんばんは。
どこが間違いとかいうよりも、私なら、こう書いているかなっていう感じですね。直してみると、違った趣旨のコードが残る所をみると、まったく違ったことを考えていらっしゃるのかなぁっていう気がします。
'//
Sub test1()
Dim PptApp As Object
Dim PptFile As Object
Dim myFilename As String
myFilename = "PowerPointの使い方" 'Application.GetOpenFilename
'ここでファイル名を求めると、まったく違った内容になるはずです。
Set PptApp = GetObject(, "Powerpoint.Application")
If PptApp Is Nothing Then
MsgBox "PowerPointは、起動しておりません", vbExclamation
Exit Sub
Else
For Each PptFile In PptApp.Presentations
If PptFile.Name Like myFilename & "*" Then
MsgBox "指定したファイルは開かれています"
Exit Sub
Else
MsgBox "PowerPointの処理を実行します" 'この意味が分かりません。
'処理
End If
Next
End If
End Sub
'//
ご報告が遅くなってしまってすみません。
実際には選択されたファイル種別を判定したうえで、PowerPointのファイルだった場合にこの処理を行なおうと思っており、ちょっと無理やり一部分を抜き出したため、間違いもありました。。
ですが、WindFallerさんのソースで目的が達成できました。
どうもありがとうございました。
実はこの内容でWordも同じように判定できると思って試したのですがうまくいかず、原因の確認に時間がかかってしまいました。
Wordは多重起動ができるため、うまくいかない場合があることがわかったのですが、また内容を整理したうえで質問させていただこうと思います。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
ExcelVBAにて既に開かれているPowerpointをアクティブにするには?
Excel(エクセル)
-
【VB.NET】 パワポ操作を非表示で
Visual Basic(VBA)
-
パワーポイントのVBAでテキストボックスに値を変更させたいです
Visual Basic(VBA)
-
-
4
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
5
【PowerPoint VBAの高速化】
その他(プログラミング・Web制作)
-
6
エクセルマクロにてパワーポイントのリンク更新をさせたい
Excel(エクセル)
-
7
ファイルは既に開かれています(Error55)について
Visual Basic(VBA)
-
8
エクセルのVBAで開いているパワーポイントのファイルを印刷
Visual Basic(VBA)
-
9
エクセルマクロで、別のブックが開いているかを判定したいのですが。
その他(Microsoft Office)
-
10
VBAで既存のパワポのファイルを開くには?
Access(アクセス)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
PowerpointVBAで指定のShapeオブジェクトを削除したい。
Visual Basic(VBA)
-
13
Excel VBA でファイルが開かれているか確認する
Excel(エクセル)
-
14
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
15
VBAでCSVファイルが使用中かどうかの確認
Visual Basic(VBA)
-
16
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
17
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
18
VBAでアクティブなファイルを切り替える
PowerPoint(パワーポイント)
-
19
PowerPointVBAでスライドマスター上での編集
PowerPoint(パワーポイント)
-
20
VBAでPowerPointからExcelにデータを抽出する
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
private subモジュールを他のモ...
-
マクロで、次のコードへ行く前...
-
特定の名前のオートシェイプの...
-
Word VBA。各マクロの間に待ち...
-
シグナル 6(SIGABRT)とは?
-
バッチファイルでのエラー処理...
-
vbaのエラー対応(実行時エラー...
-
どう増強すべきか
-
【C#】Page_Loadさせない方法に...
-
特定のファイルを他のプロセス...
-
どうやってもFor文を抜けてしま...
-
Excel VBA セルの名前があるか...
-
複数個のTextBoxでいずれかの内...
-
エクセル VBAで複数セル選択時...
-
シートモジュールを複数作成す...
-
【VBA】エラー処理で別プロシー...
-
順番に処理させたい
-
ASP.netにて質問です。
-
“try/catch”と“if/else”
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
private subモジュールを他のモ...
-
シグナル 6(SIGABRT)とは?
-
Functionで戻り値を複数返す方法
-
特定の名前のオートシェイプの...
-
ExcelのVBAで、選択したファイ...
-
マクロで、次のコードへ行く前...
-
どう増強すべきか
-
VBA 複数の行を高速で削除する...
-
Excel VBA セルの名前があるか...
-
特定のファイルを他のプロセス...
-
Word VBA。各マクロの間に待ち...
-
どうやってもFor文を抜けてしま...
-
【VBA】エラー処理で別プロシー...
-
エクセル VBAで複数セル選択時...
-
シェルスクリプトでファイル内...
-
【Vb.net】プリンタジョブの取得
-
vbaのエラー対応(実行時エラー...
-
VBAでBook読み込み時の非表示方...
おすすめ情報