• 締切済み

OpenOffice Impress マクロ(OOo Basic)で任

OpenOffice Impress マクロ(OOo Basic)で任意のページを表示する方法を教えてください。 PowerPointからの移行で「 SlideShowWindows(Index:=1).View.GotoSlide」に変わるものを 探しています。 OpenOfficeはまだ数日しか触っていませんが苦戦しています。 今の所ネットで色々探しましたが以下の内容が近いと思いましたが思ったとおりの動きを してくれませんでした。 どなたかご教授お願いします。 サンプル1 Dim Doc As Object Dim Pages As Object Dim Page As Object Doc = ThisComponent Pages = Doc.getDrawPages Page = Pages(2) サンプル2 Dim Doc As Object Dim Page As Object Doc = StarDesktop.CurrentComponent Page = Doc.drawPages(1)

みんなの回答

回答No.1

こんばんわ。 当方はPoewrPointのマクロを殆ど使った事が無いので 「 SlideShowWindows(Index:=1).View.GotoSlide」 の具体的な動作が分かりませんので、質問内容を以下の様に推測した回答を記します。 [ 推測 ] 単純にSlideのpage1にAccessする。 [ 回答 ] Slide Page2にAccessする場合。  Sub main   Dim oDoc As Object   Dim oPage    oDoc = ThisComponent    oPage = oDoc.getDrawPages().getByIndex(1)  ' <= Page 1 1の場合は getByIndex(0)です。 End Sub 蛇足として以下を記します。 [ 参考 ] OpenOffice.org Basicではありませんが下記URLのJavaScript Macro Free Softwareでいこう!! 「 OpenOffice.orgを使おう編 」  URL : http://openoffice3.web.fc2.com/ 「4.Macroの杜」=>「・JavaScript編」=>「【 Impress(Presentation) 】」=>「Annimation(SlideShow)」=>「[ Bookmark ]」=>「IAB-1)[Impress]要素にBookmarkを設定("page three"に移動)」 の様に、SlideShow中に任意の図形をClickする事でPage移動するMacro作成についての質問ならば、図形を作成する段階からの説明になるので、複雑になります。 因みに、上記URLのJavaScript CodeをBrowserで表示させても実行しませんのでご注意を。 実行させるならば、Impress画面から 「ツール」=>「マクロの管理」=>「JavaScript」=>「作成」 でIDEを表示させると、Writer用の「Hello World」Macroが記されているので、それらを全て削除して、上記Codeを記して、実行させれば 1)Slideを2page追加 2)slide1に四角要素を作成 3)四角要素をClickするとSlide page3に移動 するSlideが作成されます。 SlideShowを実行中に任意の四角形をクリックするとSlide Page3に移動します。

nanchan2010
質問者

お礼

ご回答ありがとうございます。 私の説明が悪かったと思うのですが、参考に記載している「SlideShow中に任意の図形をClickする事で Page移動するMacro作成」が本来わたしがやりたかったことになります。 詳しい説明をさせていただきますと、元々Powerpoinntで任意の画像をクリックしてページ移動をさせて表示 すると言うことをSlideShowWindows(Index:=1).View.GotoSlideを使ってやっていました。 ご回答頂きました 「oDoc = ThisComponent  oPage = oDoc.getDrawPages().getByIndex(1)  ' <= Page 1 1の場合は getByIndex(0)です。」 でも出来るかと思いましたが、やはりページの移動はうまく実現できていない状況です。 「画像をクリックするとマクロを起動」と言うことは実現できていますので、実際にページの移動をして表示させることは「oPage = oDoc.getDrawPages().getByIndex(1)」では難しいのでしょうか? もう少し。私のQAにお付き合いいただけたられしいです。 現状のマクロ(抜粋です) 画像の右クリックでオブジェクトの動作設定(マクロの実行) マクロ:vnd.sun.star.script:Standard.Module1.action000?language=Basic&location=document Sub action000() Call Slide_page(2) End Sub Function Slide_page(iToSlide) Dim oDoc As Object Dim oPage oDoc = ThisComponent oPage = oDoc.getDrawPages().getByIndex(iToSlide) End Function

関連するQ&A