LibreOfficeのニッチな活用法 - Impress で運だめし(簡単おみくじアプリの作成)

 無料で使えるオフィススイートLibreOfficeのプレゼン資料作成ソフト「Impress」を使って神社にあるようなおみくじを作ってみたいと思います。
本記事では、バージョン24.8.3を使います。

LibreOffice Impressを起動します。
サイドバーのレイアウトから「白紙のスライド」を選択します。

画面右のサイドバーのスライドのプロパティからレイアウト 「白紙のスライド」を選択

最初のスライドに「おみくじを引く」ボタンを配置、おみくじの結果表示用のスライドを2枚目以降に作成します。「おみくじを引く」ボタンクリックで結果がランダムに表示されるようなものにしたいと思います。

以下のように2枚目以降のスライドへランダムに移動するためのBasicマクロを書いていきます。

ツール→マクロ→マクロの管理→Basicを選択
アプリケーションのマクロ→(まだ保存していないため)「無題1」→「新規作成」ボタンを押す
名前を「Module1」(または適宜修正)として「OK」ボタン
マクロエディタ画面が表示される

マクロのエディタ画面に、以下のコード(Basic)を入力します。(スライドショー実行中)スライドの2枚目以降をランダムに選択して移動(表示)するという内容となります。
※エラー処理を入れてないので、スライド再生していない状態に実行したり、2枚目以降のスライドがない場合、エラーになります。

Sub RandomJump
  Dim oDoc As Object
  Dim oController As Object
  Dim oSlideList As Object
  Dim oSlide As Object
  
  oDoc = ThisComponent
  oController = oDoc.getPresentation().getController()
  oSlideList = oDoc.getDrawPages()
  oSlide = oSlideList.getByIndex(Int((oSlideList.Count - 1) * Rnd()) + 1)
  oController.gotoSlide(oSlide)
End Sub


スライドの2枚目以降をランダムに選択して移動エディタにマクロを入力(Subプロシージャ 「RandomJump」として入力)

一旦ここでファイルを保存することします。ここでは「RandomJumpSample.odp」としました。

1枚目のスライドに「おみくじを引く」ボタンを作成し、クリック時の動作に「マクロの実行」を割り当てします。今回はシンプルに長方形で表現しましたが、おみくじの筒のような画像が準備できれば見映え的にも楽しいかもしれません。

挿入→長方形でおみくじを引くボタンを作成し、オブジェクトの動作設定を行う
マウスクリックでアクションで「マクロの実行」を選択後、マクロ「参照」ボタンから今回作成したマクロを呼び出すように設定する
RandamJumpとして登録したものを選択して「OK」

2枚目以降のスライドを作成します。レイアウトは「タイトルスライド」
大吉や中吉などの見出し、テキストを入れていきます。
最初のスライドへの「もどる」ボタンは長方形で配置します。右クリックで「オブジェクトの動作設定」からマウスクリックでアクション「最初のスライドに戻る」を指定します。2スライド目を作成したら、メニュー→「スライド」→「スライドの複製」をしながら3スライド目以降を作成していくと楽かもしれません。

おみくじ結果のスライドを作成していく
本例は非常に質素だが、プレゼンソフトならではの表現力で画像や動画の埋め込みの他、
アニメーション効果、サウンド再生など組み合わせることもできる
「もどる」ボタンを右クリックして「オブジェクトの動作設定」を開く
「もどる」ボタンのクリック時の動作は、「最初のスライドへジャンプ」とする

スライドがすべて作成できたところで、メニューからスライドショーの「スライドショーの再生」(またはF5キー)を実行します。

スライドショー開始後の画面 画面中央の「おみくじを引く」ボタンをクリックする
白い余白をクリックすると通常の挙動で、次のスライドに移動してしまうので注意
ランダムにスライドが表示される 「もどる」ボタンで最初のスライドに戻る

今回はシンプルなおみくじを作成しましたが、ランダム性を生かしたインタラクティブなコンテンツ表示とプレゼンアプリならでは表現力を組み合わせることで、イベントやパーティの余興などで楽しめるようなちょっとしたゲームなどにも応用できるかもしれません。是非、面白い活用法があれば教えていただけばと思います。

いいなと思ったら応援しよう!