こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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)

投稿日時 - 2010-08-17 16:58:33

QNo.6115910

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.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に移動します。

投稿日時 - 2010-08-18 00:23:09

お礼

ご回答ありがとうございます。


私の説明が悪かったと思うのですが、参考に記載している「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

投稿日時 - 2010-08-19 09:42:00

あなたにオススメの質問