2016-05-08 4 views
0

Excel VBAでPowerPointプレゼンテーションを作成しています。
私は配置しようとしています各スライドのボタン。私は以下のコードを使用しています:PowerPoint VBAでボタンを作成してもクリックできない

Dim ppApp As PowerPoint.Application, ppPres As PowerPoint.Presentation, ppSlide As PowerPoint.Slide 
Dim shpNextButton As PowerPoint.Shape 
Set ppApp = CreateObject("Powerpoint.Application") 
Set ppPres = ppApp.Presentations.Open("C:\Users\test1.pptm") 
Set ppSlide = ppPres.Slides.Add(ppPres.slides.count + 1, ppLayoutBlank) 
Set shpNextButton = ppSlide.Shapes.AddShape(msoShapeActionButtonForwardorNext, 750, 480, 40, 12.5) 
With shpNextButton.TextFrame.TextRange 
    .Text = "Next" 
    With .Font 
      .Size = 10 
      .name = "Arial" 
    End With 
End With 
shpNextButton.ActionSettings(ppMouseClick).Action = ppActionNextSlide 

このコードは、正しいテキストでボタンを作成します。ただし、PowerPointスライドでは、このボタンはクリック可能です。クリックすると、通常の形のように機能します。

+0

:で、この潜在的な問題を回避するために、オフセット少ない側の右側を参照する方が良いでしょう= 1)と 'PowerPoint.ppActionNextSlide'(= 1)?しかし、私はレイトバインディングを使用して、それが別のコンピュータにあるときに問題を防ぐために値でPowerPointの特定の定数を置き換えることをお勧めします。 – PatricK

+0

ヒントをありがとう。私は自分のコードでレイアウトアクションの設定とアクションを持っています。なぜボタンがクリック可能でないのか分かりません。 – James

+0

コードが追加されたボタンをクリックするとスライドショー表示になりますか?アクション設定/ハイパーリンクなどは、スライドショーの表示でのみ機能し、標準またはその他の表示では機能しません。 –

答えて

0

あなたのコードは私が考えることができる唯一の事柄であるため、PowerPoint VBE内の適合バージョン(行1,3,4を削除し、5行目の現在のスライドへの参照を設定する)プロジェクトにPowerPointライブラリを追加していない場合、 'pp'定数は設定されていません。これを入力すると、イミディエイトウィンドウには何が表示されますか?

?ppActionNextSlide 

すべてが正常であれば1を返します。 0が返された場合、それはppActionNoneに相当し、何が起こっているのかを説明します。

ところで、私の4:3スライドの外にボタンが追加されたので、16:9のスライドレイアウトを使用していると仮定します。あなたは `PowerPoint.ppLayoutBlank`(= 12)に忘れてしまったおそらく、` PowerPoint.ppMouseClick`(

ActivePresentation.PageSetup.SlideWidth 
+0

JamieG - 実際にボタンをクリックして次のスライドに行くことができると言っていますか?ボタンの作成に問題はありません。しかし、それをクリックすると何も起こりません。それは基本的にそれを規則的な形のように扱っています。イミディエイトウィンドウに?ppActionNextSlideと入力すると、戻り値1が返されます。 – James

関連する問題