• 締切済み

エクセルのマクロでパワーポイントについて

エクセルでマクロを使用してパワーポイントを開くマクロについて質問です。 下記ののようなマクロを実行すると、目的のファイルは開くのですが 最小化で開かれてしまいアクティブになりません。(タスクバーのところで光っているだけ) このマクロ組んだPCで実行するとスライドショーが開かれるのですが 他のPCからこのマクロが組んであるエクセルを開いて実行すると上記のような 状態になってしまいます。 どのようにすれば、どのPCでもスライドショーから始まるのか教えて下さい。 Sub コール() Set objPpt = GetObject("V:\テスト\コール_20170711.pptx") '' スライドショー実行 objPpt.SlideShowSettings.Run End Sub

みんなの回答

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.1

普通、こういう風に組みます。 Sub Sample() Set pp = CreateObject("PowerPoint.Application") pp.Visible = True Set pt = pp.Presentations.Open("D:\VBScript\あいうえお.pptx") MsgBox ("Open!") pt.Close Set pt = Nothing Set pp = Nothing End Sub 簡単な説明です。 Set pp = CreateObject("PowerPoint.Application") まず、「PowerPoint」を扱えるようにします。 もし、「Word」なら、 Set wd = CreateObject("Word.Application") です。 pp.Visible = True で、「PowerPoint」を表示します。 もちろん、「False」に設定すれば、表示しません。 Set pt = pp.Presentations.Open("D:\VBScript\あいうえお.pptx") このようにして、ファイルを開きます。 (実際に試しています) MsgBox ("Open!") 「Open!」と表示しています。 pt.Close 開いたファイルを閉じています。 Set pt = Nothing Set pp = Nothing 「Set」で使った変数は、使い終わったら、「Nothing」で解放しておきます。

yyrd0421
質問者

お礼

教えて頂いたマクロを試してみましたが やはり症状は変わらず、マクロを組んだPCで実行すると 問題なく起動しますが、他のPCから実行すると エクセルの画面が表示されたままで、パワーポイントは 起動しますがタスクバーの所に点滅した状態で起動するだけで 画面が表示されません。 解説なども付けて頂きありがとうございます。

関連するQ&A

  • エクセルからマクロでパワーポイントを開きたい。

    エクセルでUserFormに配置したボタンをクリックすると"AAA.pps"という名のパワーポイントスライドショーが始まる、としたい。 次の形でパワーポイントを開くところまでは参考書で見つけたが その先の名前の指定方法がわかりません。ご教示乞う。 エクセル、パワーポイントともに2003。 Private Sub CommandButton1_Click() Application.ActivateMicrosoftApp xlMicrosoftPowerPoint End Sub 試行錯誤でマクロの記録で取得した次のコードでは頭の「Presentations」で「変数が定義されていません」と断られました。 sub aaaaa() Presentations.Open FileName:="C:\Documents and Settings\user\My Documents\AAA.pps", ReadOnly:=msoFalse With ActivePresentation.SlideShowSettings .ShowType = ppShowTypeKiosk .LoopUntilStopped = msoTrue .ShowWithNarration = msoTrue .ShowWithAnimation = msoTrue .RangeType = ppShowAll .AdvanceMode = ppSlideShowUseSlideTimings .PointerColor.SchemeColor = ppForeground .Run End With End Sub

  • アクセスからエクセルのマクロを実行したいのですが

    Sub エクセルのVBA実行する() Dim xlsWB As Object Dim MyFileName As String MyFileName = "C:\test.xlsx" Set xlsWB = GetObject(MyFileName) xlsWB.Application.Run xlsWB.Name & "!マクロ" Set xlsWB = Nothing End Sub と言うコードを作ったのですが エクセルファイルにはパスワードがかかっています。 パスワード付のエクセルファイルを開きマクロを実行するにはどうすればいいでしょうか?

  • エクセルのマクロについて

    OS:XP Excel:2007 お世話になります。 マクロ初心者ですが宜しくお願いします。 エクセルにワードの文字を挿入するマクロを組んでみたのですがセルのサイズの取得方法が解りません。 挿入したオブジェクトのサイズを数値にて指定するところまでは出来たのですが、選択されているセルのサイズに合わせる為にはどうしたら良いでしょうか? 宜しくお願いします。 Sub 起動コピー() Call word起動 Call wordコピー Call 形式を選択して貼付 Call セルに合わせる End Sub Sub word起動() Set wd = CreateObject("word.Application") wd.Visible = True wd.Documents.Open Filename:= _ "C:\Documents and Settings\aaa.docx" End Sub Sub wordコピー() Dim wdApp As Word.Application Set wdApp = GetObject(, "word.application") wdApp.Run "copy" wdApp.quit End Sub Sub 形式を選択して貼付() ActiveSheet.PasteSpecial Format:="Microsoft Office Word 文 書 オブジェクト", Link:= _ False, DisplayAsIcon:=False End Sub Sub セルに合わせる() Selection.ShapeRange.ScaleHeight 1.08, msoFalse, msoScaleFr omTopLeft Selection.ShapeRange.ScaleWidth 0.93, msoFalse, msoScaleFro mTopLeft End Sub

  • パワーポイントのマクロについて

    パワーポイントで簡単なマクロ(アニメーションを動かさないで、スライドショーを実行する)を作りました。そしてユーザー設定からツールバーにボタンとして配置しました。 ところが、一度そのパワーポイントを閉じてしまい同じファイルや違うファイルを開くと、そのマクロが無効になってしまいます。 私がお聞きしたいのは、 「一度作ったマクロを次回から開くすべてのパワーポイントファイルで使えるようにすることはできるのか?」 です。 どうかご存じの方いらっしゃいましたら、よろしくお願い申し上げます。

  • Accessからoutlookのプロシージャー

    Accessからoutlookのプロシージャーを実行する方法は? AccessからExcelなら、エクセルに ************************ Sub エクセルマクロ() MsgBox "a" End Sub ************************ を作り、アクセス側で、 ************************ Private Sub AccessからExcel() Dim xlsWB As Object Set xlsWB = GetObject("D:\My Documents\up\エクセル.xls") xlsWB.Application.Run xlsWB.Name & "!エクセルマクロ" Set xlsWB = Nothing End Sub ************************ を実行すると、エクセル側のプロシージャーが実行されますが、 Accessからoutlookの場合は、どうすればいいでしょうか? Outlookの標準モジュールに、 ************************ Sub Outlookマクロ() MsgBox "a" End Sub を作っても、 アクセス側で、 Private Sub AccessからExcel() Dim xlsWB As Object Set xlsWB = GetObject("D:\My Documents\up\ ")‘ここをどうすればいいかわからない。 xlsWB.Application.Run xlsWB.Name & "! Outlookマクロ" Set xlsWB = Nothing End Sub ************************ と言うコードしか作れなくて、詰んでしまいます。 Accessからoutlookのプロシージャーを実行する方法をご教授ください。よろしくお願いします。

  • PowerPointスライドショーのマクロ

    Office XPのPowerPointのマクロで2つのスライドショーを制御したいと考えています。 <想定している動作> 1)スライドショーAはエンドレスで流れている 2)スライドショーA内にあるリンクボタンを押すと、スライドショーBが流れ始める(マクロを実行) 3)スライドショーBは1回流れるとスライドショーAに切り替わる 4)スライドショーAがエンドレスで流れ始める マクロを途中まで作成したのですが、4)で、スライドショーAがリンクボタンを押した状態のまま固まってします。 ソースは以下です。 Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub slide()   PowerPoint.Presentations.Open ("C:\スライドB.ppt") With     ActivePresentation.Slides.Range.SlideShowTransition .AdvanceOnClick = msoFalse .AdvanceOnTime = msoTrue       '表示秒数  .AdvanceTime = 30000 End With With ActivePresentation.SlideShowSettings .ShowType = ppShowTypeSpeaker .LoopUntilStopped = msoFalse '繰り返し上映はしない .ShowWithNarration = msoTrue .ShowWithAnimation = msoTrue .RangeType = ppShowAll .AdvanceMode = ppSlideShowUseSlideTimings .PointerColor.SchemeColor = ppForeground .Run End With   Sleep (1000) SlideShowWindows(Index:=1).View.Next Sleep (1000) SlideShowWindows(Index:=1).View.Next Sleep (1000) SlideShowWindows(Index:=1).View.Exit Sleep (1000) ActivePresentation.Close PowerPoint.ActiveWindow.Activate End Sub どなたかお分かりになる方いらっしゃいますか? 上のソースをベースにしなくても良いので、ぜひアドバイスお願いします!

  • エクセルのマクロでファイルを開く

    エクセルの「ファイルを開く」ダイアログボックスを使用してファイルを開き、その開いたファイルに対してとあるマクロを実行させたいと思っています。 エクセルの「ファイルを開く」ダイアログボックスでパス取得までは理解出来たのですが、その先の処理が分かりません。 「ファイルを開く」と言うのは、「現在アクティブになっているシートにデータを貼り付けて」の処理でも構いません。 Dim Ret As Variant Ret = Application.GetOpenFilename("Excel ブック (*.xls), *.xls, テキストファイル(*.txt),*.txt") If Ret = False Then MsgBox "キャンセルが選択されました。" Exit Sub Else       'ここにRetで取得しているパスのファイルを開いて、sub_WAITのマクロを実行させたいです。 sub_WAIT.Show End If End Sub

  • エクセルマクロのCallとコンパイルエラー

    エクセルマクロのCallとコンパイルエラー よく、教えていただくのですが作ったマクロを呼び出すのに、 ・Call 作成したマクロ とか教えてもらいますが 標準モジュールのツリーには ・Module1 ・Module2 ・オートオープン ・リセット とかがあって ・Call リセット とかにして実行すると ・コンパイルエラー (モジュールではなく、変数またはプロシージャを指定してください) となってしまいます。 Callの後にはどういう風にすればいいのでしょうか? -------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$5" And Len(Range("B5").Value) > 1 Then Call 印刷←印刷はModule2です。 End If End Sub ------------- で印刷のマクロの一部に Call リセット をつけたたしたらなりました。 よろしくお願いします。

  • パワーポイントでマクロ(Auto_Close)について

    パワポのマクロの件で質問です。 パワポのマクロでAuto_Closeは使えるのでしょうか? 作ってみたのですが、閉じてもマクロが実行されてないようなのです・・・ たとえば Sub Auto_Close() Msgbox "閉じます" End sub としても、何もおきずに閉じてしまいます。 分かる方がおられたら教えてください ※使用環境 WindowsXP パワーポイント2003

  • パワーポイント2003のマクロについて

    OSはXP、パワーポイント2003を使っています。スライドが15枚あります。15枚には3パターンで使用するスライドが入っています。パターン1では必要なスライドは8枚、パターン2では10枚、パターン3では13枚です。不要なスライドを削除するために、ネットで調べてマクロによる削除まで出来ました。スライドの削除は途中のスライドを削除したりするので、表題に付与している項目番号が変わります。 表題の項目番号はスライドの一番左上に記載しています。 マクロで文中に「1-(1)」「1-(2)」「1-(3)」「1-(4)」「2-(1)」「2-(2)」「3-(1)」を記載して、指定するスライドの左上に書き込むことは出来るでしょうか。もしくはマクロを実行させるPPTのファイルがあるのですが、これの2枚目以降のスライドに項目番号を記載し、コレをコピー&ペーストで実行することが出来るでしょうか。 教えていただける方、どうぞよろしくお願いします。 スライドを削除するVBAは下記で実行できました。 Sub pt1() ' ' マクロ記録日: 2012/5/28 ユーザー名: Dim myPath As String Dim PPTName As String Dim ThisPresentation As Presentation Dim CurrentPPT As Presentation Set ThisPresentation = ActivePresentation myPath = ActivePresentation.Path '自ファイルのパス取得 If Right$(myPath, 1) <> "\" Then myPath = myPath & "\" End If PPTName = Dir(myPath & "会議資料(原本).ppt") If PPTName <> ThisPresentation.Name Then Set CurrentPPT = Presentations.Open(myPath & PPTName) 'ファイル開く End If ActiveWindow.View.GotoSlide Index:=15 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=14 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=13 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=12 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=11 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=10 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=9 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=8 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=7 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=4 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=3 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=1 ActiveWindow.Selection.SlideRange.Delete MsgBox "作成終了" End Sub

専門家に質問してみよう