- 締切済み
パワーポイントVBA
パワーポイント2003または2007を使える環境です。 パワーポイントVBAで下記の事を実行したいのですが教えて頂けないでしょうか? 「シフト」を押した状態でクリックするとハイパーリンクで、あるHTMLファイルに飛ぶ、というVBAが、あるテキストボックスをクリックすれば実行されるのを組みたいと思っています。 シフト押すというVBAが難しければ、他のHTMLファイルに飛ぶというVBAだけでも教えて頂ければ助かります。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- n_na_tto
- ベストアンサー率70% (75/107)
Dim Sld As Slide Set Sld = Shp.Parent の2行は不要でした。 他のマクロに手を加えたので、削除忘れです。 >「シフト」を押した状態でクリックするとハイパーリンクで、 >あるHTMLファイルに飛ぶ に対しての回答だったのですが、 その後のお礼の書き込みを読むと 求めているものが違うようですね。 ですから解説はお断りします。
- n_na_tto
- ベストアンサー率70% (75/107)
新規ファイルにテキストボックス挿入 →中に*.htmlファイル名をフルパスで E:\office\Excel\Book1.htm などのように入れる →そのテキストボックス(複数可)を選択した状態で MacroTourokuマクロ実行 →スライドショー実行 Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal hwnd As Long, ByVal lpszOp As _ String, ByVal lpszFile As String, ByVal lpszParams As String, _ ByVal lpszDir As String, ByVal FsShowCmd As Long) As Long Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long Private Const VK_SHIFT = &H10 'Shiftキー Sub Sentaku(Shp As Shape) Dim KState(0 To 255) As Byte Dim Sld As Slide Set Sld = Shp.Parent GetKeyboardState KState(0) If KState(VK_SHIFT) And &H80 Then With Shp.TextFrame.TextRange If Len(.Text) > 0 Then ShellExecute 0, "Open", .Text, "", "", 1 End If End With End If End Sub Sub MacroTouroku() Dim Shp As Shape For Each Shp In ActiveWindow.Selection.ShapeRange With Shp.ActionSettings(ppMouseClick) .Run = "Sentaku" .Action = ppActionRunMacro End With Next Set Shp = Nothing End Sub
- A88No8
- ベストアンサー率52% (836/1606)
こんにちは >他のHTMLファイルに飛ぶというVBAだけでも教えて頂ければ助かります。 あるテキストボックスをクリックすれば他のHTMLファイルに飛ぶだけならVBAを使うまでもなく、あるテキストボックスを右クリックして「ハイパーリンク」を選んで飛び先を指定すれば実現できると思いますよ。
お礼
早速の回答ありがとうございます。 http://oshiete1.goo.ne.jp/qa4731574.html 最終目標は上記のリンク先で相談させて頂いていることをしたいと思っています。 しかし、回答がなかったので違う視点から見てできないかと思い、この質問させて頂きました。 何かアドバイスがあれば、よろしくお願いします。
お礼
回答ありがとうございます。 この質問して気付いたのですが、HTML化したパワーポイントのハイパーリンクはシフトを押しながらクリックしても、別ウィンドウが開かないのですね。 別ウィンドウを開く方法はご存知でしょうか? また、このVBAの説明を頂ければ助かります。 よろしくお願いします。