"Hello World!" から始める Calc で LibreOffice Basic

15,137 views
15,776 views

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
15,137
On SlideShare
0
From Embeds
0
Number of Embeds
1,376
Actions
Shares
0
Downloads
49
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

"Hello World!" から始める Calc で LibreOffice Basic

  1. 1. ”Hello World!” から始める Calc で LibreOffice Basic  MS Office の VBA のように、LibreOffice にも、「 LibreOffice Basic 」と呼ばれるマクロを作成・実 行するための仕組みがあります。今回は、この LibreOffice Basic を使ってみたいと思います。  まず前半では、プログラミングの定番である、”Hello World!” と表示させるマクロの作り方から、 組み込み関数や変数や制御文について実習し、後半では、LibreOffice 固有のオブジェクトのメ ソッドやプロパティについて、分からないことがあった場合の調べ方・情報源について紹介します。 マクロとは  「LibreOffice Basic」で作るプログラムなどを、一般に「マクロ」と言います。マクロとは、「マウスや キーボードでの一連の操作・入力」などをファイルに保存しておいて、あとで呼び出して一気に実 行できるようにした指示書のようなものです。その場1回限りの作業であれば、わざわざマクロを作 る必要はありません。しかし、何度も行う、ステップ数の多い定型繰り返し作業であれば、マクロに しておくことで、素早く間違いなく処理できるうえに、対話方式で処理条件を指定したり、条件に応 じて異なる処理をしたりもできます。 マクロを使う前の設定確認  LibreOffice では、安全のため、標準ではマ クロを実行できない設定になっています。マ クロを使うには、事前にセキュリティレベルを 下げておく必要があります。「ツール -> オプ ション -> LibreOffice -> セキュリティ -> マク ロセキュリティ」で、レベルは「中(M)」にす るのが一般的でしょう。 「Java 実行環境(JRE)」と「マクロの記録」  今回扱う内容の範囲では、JRE は必 須ではない(なくても動く)のですが、 警告がでますので、必要に応じて JRE をインストールし、設定します。また、マ ウスやキーボードでの操作をマクロ コードに記録してくれる「マクロの記録 を有効にする(D)」にもチェックをいれ ておきます。 - 1 - 図 1: セキュリティレベル 図 2: JRE の指定 と マクロの記録を有効にする
  2. 2. マクロの記録先 さっそくマクロを作っていき ましょう。 まずは Calc を起 動し、「ファイル -> 名前を付 けて保存(A)」で「マクロの 練習.ods」とします。次に、 「ツール -> マクロ -> マクロ の管理 -> LibreOffice Basic(B)」とすると、マクロの 選択画面がでます。「マイマ クロ」ライブラリコンテナ下 の、「Standard」ライブラリ の下の、「Module1」モ ジュールの「Main」サブ ルーチンというマクロが選 択された状態になっていると思いますが、今回は、いま開いているファイルである「マクロの練 習.ods」に記録します。  マクロの最小単位は、「サブルーチン」や「ファンクション」ですが、これらは「モジュール」という ファイルのような単位で管理されます。モジュールは「ライブラリ」というフォルダのような単位で管 理されます。さらにライブラリは3つの「ライブラリコンテナ」という共有フォルダのようなもののい ずれかに属します。3つのライブラリコンテナは、保存場所や挙動がそれぞれ違います。 ライブラリコンテナ 保存される場所とその挙動 マイマクロ ライブラリ 現在のログインユーザーのホームディレクトリに保存さ れ、このユーザーでログインした時には、どのファイルを 開いていても、このマクロを実行できる。 LibreOffice のマクロ ライブラリ 現在のマシンの LibreOffice インストールフォルダ内に保 存され、現在のマシンにどのユーザーでログインしても、 このマクロを実行できる。 マクロの練習.ods(いま開いてい るファイル) 各ファイルに含まれて保存される。そのファイルを開いた すべての環境で、このマクロを実行できる。 “Sub” と “End Sub”の間に  「マクロの記録先」で「マクロの練習.ods」を選 択し、「新規作成(N)」をクリックすると、モジュール 名の指定画面で「Module1」と出ますので、そのま まで「OK」とします。そうすると、図のような 「LibreOffice Basic IDE」の画面が立ち上がります。 - 2 - 図 4: LibreOffice Basic IDE 図 3: マクロの記録先
  3. 3.  モジュールを新規作成すると、空(カラ)の「Main」サブルーチンが用意されます。「Sub」という 行から、「End Sub」という行の間に、実際の処理内容のマクロコードを書いていきます。「Sub」の 後ろの「Main」というのは、「サブルーチン名」になります。ひとつのモジュールのなかに、複数のサ ブルーチンを書くこともできますので、その場合は、自分で適宜、サブルーチン名を付けることにな ります。スタイルとして、「Main」サブルーチンではほかのサブルーチンを呼び出すだけにして、実際 の処理の実装はほかのサブルーチンでする、というような流派もあると思います。  オブジェクトカタログを確認すると、今回作った「Module1」は、「Standard」ライブラリの配下にで きていると思います。ひとつのライブラリコンテナのなかに、複数のライブラリを持たせることもでき るのですが、標準で作成されるこの「Standard」ライブラリは、ファイルが開かれたときに自動的に 読み込まれることになっています。その他のライブラリは、マクロを実行する前に、明示的にそのラ イブラリを読み込むというひと手間が必要です。 最初の一歩は「MsgBox」関数  それではいよいろマクロコードを書いていきます。次のようにしてください。 Sub Main MsgBox( “Hello World!” ) End Sub  書けたら、まず保存しましょう。保存は、ファイルメニューからできるほか、左上の FD や HDD のア イコンをクリックすることでもできます。右のほうにある保存アイコンをクリックすると、マクロコードを テキストファイルでエクスポートすることができますが、今回は使いません。  なお、「REM」(Remark)は、そこから行末までを「コメント」とするステートメントで、行頭に置け ば実行時には行全体が無視されます。これは、あとでマクロコードを読んだときに、処理内容を理 解しやすくなるようなコメントや区切りを入れるのに使います。また、シングルクォーテーション「 ' 」 も、そこから行末までをコメント扱いにすることができます。同じ働きをしますが、行頭には「Rem」、 行の途中には「'」とすれば見やすいと思います。 “Hello World!”  保存できたら、いよいよマクロを実行しましょう。「BASIC プログラムの実行(F5)」ボタン か、 「ステップイン(F8)」ボタン をクリックしてみましょう。後者は、ボタンを1回クリックするたびに マクロが1行ずつ実行されるので、マクロコードが長くなってきたときに、意図した通りに処理できて いるかを順を追って確認することができます。  IDE 画面から Calc 画面に戻って、「ツール -> マクロ -> マクロを実行(U)」からマクロセレクター 画面で「Module1」モジュールの「Main」サブルーチンを選んで、「実行」ボタンをクリックすることで も、マクロを実行することができます。図のように、メッセージボックスが表示されたでしょうか。 - 3 - 図 5: Hello World!
  4. 4. 関数の仕様を調べる  さて、MsgBox ( ) 関数というものが出てきましたが、これは、LibreOffice Basic によってあらかじ め用意されている組み込み関数です。では、この関数の仕様は、どこで調べればいいでしょうか。  IDE 画面で「LibreOffice ヘル プ」ボタンをクリックして、索引 タブで検索語(S)を「MsgBox」 としてみましょう。または、目次 タブで、「マクロとプログラミン グ -> コマンドリファレンス -> 実行時関数、ステートメント、 演算子 -> 画面入出力関数 -> 表示関数」としても、同じヘル プにたどり着けます。Calc 画面 からヘルプを開いた場合など は、ヘルプウィンドウ上の「ナビ ゲーション範囲」を、 「LibreOffice Basic」としてみる とよいでしょう。  なお、これとまったく同じ資料が、LibreOffice のヘルプサイトにも掲載されています。 「 https://help.libreoffice.org/Main_Page/ja 」において、「・LibreOffice Basic (ベーシック言語を使っ たプログラミング) -> 実行時関数 -> 画面入出力関数 -> 表示関数」とたどります。  ヘルプを見ると、「MsgBox ( )」関数の書式は MsgBox ( ”メッセージ文字列” [ , ボタンの種類をコード指定 [ , ”タイトル文字列” ] ] ) というふうに、3項目の指定ができることが分かります。関数に対する指定項目のことを、引数(ひ きすう) 、Argument といいます。構文の例で、大括弧でかこわれている引数は、省略が可能です。 「MsgBox ( ) 」関数では、第2と第3の引数を省略したり、第3引数だけを省略したりすることができ ます。第2引数だけを省略したいときは、「 MsgBox( Arg1 , , Arg3) 」のようにカンマを続けて、第2引 数のところをカラにします。なお、引数を省略した場合は、デフォルト値を設定したことになります。  また、関数は、与えられた引数を計算してその結果を返します。この値のことを戻り値(もどり ち)といいます。MsgBox ( ) 関数は、「どのボタンが押されたか」というコードを戻り値として返しま す。ステートメントとは、命令語や制御文などのことをいいます。(Sub とか End とか Rem とか) メモ y=f(x)で言えば、f(x)が関数、xが引数、yが戻り値です。 - 4 - 図 6: LibreOffice ヘルプ
  5. 5. その他の関数の調べかた  ヘルプを見ると、他にもたくさんの組み込み関数があるのが見えたと思います。例えば、「小数点 以下を四捨五入したい、切り捨てたい」とか、「商の余りを求めたい」とか、「小文字を大文字にし たい」というような場合に、どの関数を使ったらいいのかを調べるには、「LibreOffice ヘルプ」の「ナ ビゲーション範囲」を「LibreOffice Basic」にして、目次タブで、「マクロとプログラミング -> コマンド リファレンス -> 実行時関数、ステートメント、演算子」などのなかを探します。「同 -> 数値関数」や 「同 -> 文字列 -> 文字列の編集」などは、特によく使うでしょう。「マクロとプログラミング」の配下 は、ひと通り目を通されることをお勧めします。  なお、これとまったく同じ資料が、LibreOffice のヘルプサイトにも掲載されています。 「 https://help.libreoffice.org/Calc/Functions_by_Category/ja 」で、「数学」や「文字列」とたどります。 Sub と Function  マクロには、「Sub」のほかに 「Function」というのもあります。サブ ルーチンとの違いは、処理結果をファ ンクション名の変数に代入して戻り 値として返すところです。また、 Function は、他の Sub から呼び出し て使うだけでなく、スプレッドシート上 のセルにおいて、自作関数として、ま るでワークシート関数のように使うこ ともできます。Main サブルーチンの 下に、以下を追記して保存したあと、 Calc 画面に戻って、適当なセルに「 =fFive()」と入力してみてください。なおこのとき、関数名の大文字と小文字は区別されません。 Function fFive() fFive = 5 End Function 変数とは  プログラミングには変数がかかせません。変数とは、マクロコードにおいて本来であれば特定の 数値や文字列を決め打ちで書くような部分を、変数に置き換えて書いておき、マクロを実行すると きには変数に本来の数値や文字列を代入して、決め打ちしていたときと同じ動きをさせる、という 抽象化のための仕組みです。(例:「あれなんやけど、できてるかな?」「ああ、あれな。できてるで。」 で通じる、「あれ」が変数。シチュエーションによって「あれ」の指すものは変わる。)  変数を使って、コードを書く量を少なくしたり、のちに変更があってもマクロコードの修正が少な く済むようにしたり、そのコードで何をやっているのかが分かりやすくなるようにします。 - 5 - 図 7: Function はセルでも使える
  6. 6.  まず、実際に変数を使ってみましょう。「Module1」モジュールの「Main」サブルーチンを、次のよう に書き換えて、実行してみましょう。 Sub Main Dim sMsg as String Dim iVal as Integer sMsg = “Hello World!” iVal = MsgBox( sMsg , 3 ) 'MsgBox()関数の第3引数のみ省略 MsgBox( iVal ) iVal = fFive() MsgBox( iVal) End Sub  「sMsg」と「iVal」というのが、変数です。これは、筆者が勝手に決めた変数名です。今回はたまた ま「sMsg」、「iVal」としましたが、ほかの名前にしても、実行結果は変わりません。変数は自分で好 きなように命名することができます。ただし、組み込み関数名やステートメント名などの予約語で使 われている名前は、変数名には使えません。(Sub とか MsgBox とか)  このように、変数は、前もって用意されているのではなく、サブルーチンの初めなどで、次のよう な形で定義(宣言 Dimension)します。データの型には、数値、文字列、オブジェクトなどがあります。 Dim 変数名 as データの型 変数の仕様を調べる  変数のデータの型の詳しい仕様は、LibreOffice Basic IDE で「LibreOffice ヘルプ」ボタンをクリッ クして、索引タブで検索語(S)を「変数」とすることで、みることができます。  または、目次タブで、「マクロとプログラミング -> 一般的な情報およびユーザーインターフェイス の使用法 -> 構文 -> 変数の使用法」、もしくは「マクロとプログラミング -> ガイド -> 変数の使用 法」としても、同じヘルプにたどり着けます。  なお、これとまったく同じ資料が、LibreOffice のヘルプサイトにも掲載されています。 「 https://help.libreoffice.org/Main_Page/ja 」で、「・LibreOffice Basic (ベーシック言語を使ったプロ グラミング)」->「LibreOffice Basic のプログラミング」->「構文」->「変数の使用法」とたどります。  変数名の命名規則には、様々な流派があり、ある意味ノウハウ的なところもありますが、  1文字目:「変数のデータ型の型名の頭文字の小文字」  2文字目:「大文字」  3文字目以降:「小文字」 という形にすると、変数であることがすぐわかるうえに、どんな値が代入されているのかを推測しや すくなるのではないでしょうか。 - 6 -
  7. 7. 変数のクラス 内容 宣言の例 数値 整数(-32,768〜32767) ロング整数(-2,147,483,648〜2,147,483,647) 単精度小数(浮動小数点方式) (3.402823x10E38〜1.401298x10E-45) 倍精度小数(浮動小数点方式) (1.79769313486232x10E308〜 4.94065645841247x10E-324) 通貨型(固定小数点方式)(整数部 15 桁と 小数部 4 桁) Dim iVal As Integer Dim iVal% Dim lVal As Long Dim lVal& Dim sVal As Single Dim sVal! Dim dVal As Double Dim dVal# Dim cVal As Currency Dim cVal@ 文字列 最大 65,535 文字の文字列を格納できます。 Dim sVal As String Dim sVal$ ブール型 TRUE(真)または FALSE(偽)という2つの値 のどちらか一方のみを格納できます。数値 0 は FALSE と評価され、その他すべての値は TRUE と評価されます。 Dim bVal As Boolean オブジェクト なんでも代入できる、汎用的な型。処理対象 となるドキュメントや、セルなども、この型の変 数に格納します。 Dim oVal As Object その他 日付型 Dim dVal As Date オブザーバーで変数の変化を観 察する  「sMsg」や「iVal」にカーソルを置いた 状態で、「オブザーバーの有効化(F7)」 ボタン をクリックすると、左下のオブ ザーバーウィンドウの変数の欄に、 「sMsg」や「iVal」が表示されます。 「ス テップイン(F8)」ボタンを数回クリックし て、「値」や「種類」がどのように変化して いくか観察します。変数の上にマウス オーバーすることでも、その時点でその 変数に代入されている値を確認すること ができます。 - 7 - 図 8: オブザーバーウィンドウで変数の変遷を観察
  8. 8. 配列とは  いくつかの変数をまとめて扱いたい場合に、1つの変数名においてまとめることができます。これ を、配列といいます。詳しくは、ヘルプで「変数の使用法」の配列の説明を確認してください。 配列の宣言 配列の長さ(インデックス、要素の数) Dim sVal$(20) 0 から 20 まで計 21 個の要素が確保されます。 Dim sVal$(5,4) 計 30 個の要素が確保されます (6 x 5 要素の行列として)。 Dim sVal$(5 To 25) 5 から 25 まで計 21 個の要素が確保されます。 Dim sVal$(-15 To 5) -15 から 5 まで (0 も含めた) 計 21 個の要素が確保されます。  配列の要素を利用する場合は、インデックス番号を指定します。  図の例では、インデックスが0から2までで要素が3個の配列 sMsg ( ) を宣言して、各要素に順 番に文字列を代入し、順番に MsgBox 関数で表示させています。  なお、配列のインデックスの最小値、最大値は、LBound()関数、UBound()関数で求められます。 Sub Main Dim sMsg(2) As String sMsg(0) = "Good Morning World!" sMsg(1) = "Hello World!" sMsg(2) = "Good Night World!" MsgBox( sMsg(0) ) MsgBox( sMsg(1) ) MsgBox( sMsg(2) ) MsgBox( LBound(sMsg())) MsgBox( UBound(sMsg())) End Sub 制御文とは  通常、マクロコードは先頭行から順番に実行されます。これを、特定の行だけ、指定した回数繰 り返し実行させたり、指定した条件が成立した場合にだけ実行させたりすることができます。このよ うなプログラムの実行制御を行うためのステートメントは、大きく分けて条件分岐、ループ (繰り返 し)、ジャンプ (移動) の3種類があります。 詳しい仕様は、LibreOffice Basic IDE で「LibreOffice ヘルプ」ボタンをクリックして、目次タブで、「マ クロとプログラミング -> コマンドリファレンス -> 実行時関数、ステートメント、演算子 -> プログラム 実行の制御」でみることができます。  なお、これとまったく同じ資料が(ry - 8 -
  9. 9. 条件判定ステートメント  例として、「If...Then...Else」ステートメントを使ってみましょう。 Sub Main Dim sMsg(2) As String Dim iVal as Integer sMsg(0) = "Good Morning World!" sMsg(1) = "Hello World!" sMsg(2) = "Good Night World!" iVal = MsgBox(“今は朝ですか?”,3,”If Then Else”) If iVal = 6 Then MsgBox( sMsg(0) ) ElseIf iVal = 7 Then MsgBox( sMsg(2) ) Else MsgBox( sMsg(1) ) End If End Sub ループ(繰り返し)  例として、「For...Next」ステート メントを使ってみましょう。 Sub Main Dim sMsg(2) As String Dim iVal as Integer sMsg(0) = "Good Morning World!" sMsg(1) = "Hello World!" sMsg(2) = "Good Night World!" For iVal = 0 To 2 MsgBox( sMsg(iVal) ) Next End Sub ジャンプ(移動)  例として、「On Error GoTo ...Resume」ステートメントを使ってみましょう。 これは、「マクロとプログラミング -> コマンドリファレンス -> 実行時関数、ステートメント、演算子 -> エラーを制御するための関数」に分類されています。 - 9 -
  10. 10. Sub Main On Error GoTo ErrorHandler Error(1)'Error 関数で、あえてエラーを発生させます。 Exit Sub ErrorHandler: Reset MsgBox ("エラーが起きました。エラー内容:" & Error,0+48,0"エラー発生!") End Sub メモ ヘルプには、サンプルコードが掲載されています。これをコピー&ペーストでモ ジュールに持ってきて実行し、実際の動作を確認してみるのもよいでしょう。 Calc 的なマクロも軽く  「Calc 固有のオブジェクト」を直接操作するスタイルのマクロについて、次のサイトに、とても詳し く、わかりやすく説明されています。ここまでで、マクロを「読む」ことはできるようになったと思いま す。こちらのサイトにも、多くのサンプルが掲載されていますので、コピペして確認してみましょう。 Macro の杜 [ マクロ for OpenOffice.org and LibreOffice ]  Calc( 表計算 ) http://openoffice3.web.fc2.com/OOoBasic_Calc.html Sub Main ThisComponent.Sheets(0).getCellByPosition(0,0).value=1 '←セル A1 に数値の 1 を入力 ThisComponent.Sheets(0).getCellByPosition(0,1).String="test" '←セル A2 に文字列の test を入力 ThisComponent.Sheets(0).getCellByPosition(0,2).Formula="=A1*10" '←セル A3 に式( =A1* 10)を入力 End Sub 「Sheets」の「getCellByPosition ( ) 」 というのを、調べてみたいところです。 オブジェクトの調べ方  オブジェクトにどのようなものがあるのか、またそのオブジェクトにはどのようなメソッドやプロパ ティがあるのか、ということを調べるには、以下のサイトで探しますが、慣れるまではなかなか必要 な情報にたどり着けないかもしれません。 ・LibreOffice 4.2 API Documentation ( http://api.libreoffice.org/  ) - 10 -
  11. 11. MRI-UNO Object Inspection Tool(オブジェクトブラウザ)  「MRI」は、オブジェクトのメソッドやプロパティにどのようなものがあるか、一覧表示してくれる拡 張機能です。以下のサイトから最新版(執筆時点では「MRI-1.2.1.oxt」)をダウンロードしてインス トールします。  ・Apache OpenOffice Extensions MRI – UNO Object Inspection Tool  http://extensions.services.openoffice.org/en/project/mri-uno-object-inspection-tool  インストールすると、「ツール - >アドオン」というメニューが増え、 「同 -> MRI」とたどることで、MRI が起動します。「同 -> MRI <- selection」とすると、その時点で 選択しているオブジェクトについ ての情報が表示されます。  「同 -> MRI」から、 「Properties」で「Sheets」をダブ ルクリックし、「Methods」で 「getCellByPosition」の行をみま す。第1引数が列で、第2引数が 行の指定であることが分かりま す。「getCellByPosition」を選択し た状態で、「IDL Ref.」ボタンをク リックすると、Web 上のリファレンスページが開き、さらに詳しく調べることができます。  また、マクロ内で利用するには、サブルーチン内で呼び出したうえで、確認したいオブジェクトの 前に「 mri 」と書くと、そのオブジェクトについての情報が表示されます。 例えば、「ThisComponent」を調べる場合には、次のように書きます。 この書き方は、「マイマクロ」のなかにできている「MIRLib」ライブラリーの「LoadMriLibrary」サブ ルーチンのなかのに書いてありますので、コピー・ペーストすればよいでしょう。 Sub Main Globalscope.BasicLibraries.LoadLibrary( "MRILib" ) mri ThisComponent End Sub  さらに、オブザーバーで「ThisComponent」をウォッチして、どういう構造になっているか見てみる と、参考になるでしょう。 - 11 - 図 9: MRI オブジェクトブラウザ
  12. 12. マクロの記録  「ツール -> マクロ -> マクロの記録」とたどれば、停止ボタンを押すまでの間、マウスやキーボー ドでの操作を「記録」して、自動的にマクロにしてくれます。しかし「マクロの記録」で生成されるマ クロコードは、ちょっと独特です。試しに、セル A1 が選択されている状態から「マクロの記録」を初 - 12 - 図 10: マクロ内で MRI を呼び出す
  13. 13. めて、「セル B3 を選択」して、「文字列”LibreOffice”と入力」して、「Enter を押下してひとつ下のセ ルに移動」して、そこで「記録の終了」を押下しましょう。マクロの保存先を聞かれますので、「マク ロの練習.ods -> Standard -> Module1 -> Main」として「保存」ボタンをクリックします。上書きするの かと聞かれますので、「はい」としましょう。以下のようなマクロコードが記録されたと思います。 sub Main rem --------------------------------------------------------------------- rem define variables dim document as object dim dispatcher as object rem --------------------------------------------------------------------- rem get access to the document document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") rem -----------------------------------------------「セル B3 を選択」---- dim args1(0) as new com.sun.star.beans.PropertyValue args1(0).Name = "ToPoint" args1(0).Value = "$B$3" dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1()) rem ------------------------------------「文字列”LibreOffice”と入力」---- dim args2(0) as new com.sun.star.beans.PropertyValue args2(0).Name = "StringName" args2(0).Value = "LibreOffice" dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2()) rem ------------------------------「Enter を押下してひとつ下のセルに移動」---- dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array()) end sub ひとつひとつの操作が、「Dispacher」に対してコマンド URL と設定値を与えて実行する、という体 裁のマクロコードで記録されています。オブジェクトを直接操作するスタイルのマクロコードと見比 べると、ちょっとまわりくどいというか、なれるまでは意味がわかりにくいかもしれません。 - 13 -
  14. 14.  このことについても、やはり先ほどのサイトに、とても詳しく、わかりやすく説明されています。 Macro の杜(OpenOffice.org/LibreOffice Basic 編) Macro の記録 / Record Macro  (魔法の Command 「 DispachHelper 」編 )  http://openoffice3.web.fc2.com/OOoBasic_DespatchHelper.html  また、「Dispacher」に対して与えられるコマンド URL にどのようなものがあるかについては、次の サイトが参考になります。もちろん、マクロにしたい操作を「マクロの記録」でコードにすることでも、 目的のコマンド URL がわかると思います。  http://hermione.s41.xrea.com/pukiwiki/index.php?OOoBasic%2FGeneric%2Fcommands_2.3.0 その他お薦めなサイトなど ・公式ヘルプサイト https://help.libreoffice.org/Main_Page/ja https://help.libreoffice.org/Basic/MsgBox_Function_Runtime/ja https://help.libreoffice.org/Basic/Using_Variables/ja https://help.libreoffice.org/Basic/Controlling_Program_Execution/ja ・The Document Foundation (TDF) Wiki  https://wiki.documentfoundation.org/ ・Getting Started with LibreOffice 「Chapter13: Getting Started with Macros」(英語)  https://wiki.documentfoundation.org/images/9/9a/GS4013-GettingStartedWithMacros.pdf ・Calc Guide 「Chapter12: Calc Macros」(英語)  https://wiki.documentfoundation.org/images/2/27/CG4012-CalcMacros.pdf ・LibreOffice 4.2 API Documentation  http://api.libreoffice.org/ ・SpreadsheetDocument http://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1sheet_1_1SpreadsheetDocu ment.html ・SpreadsheetDocumentSettings http://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1sheet_1_1SpreadsheetDocu mentSettings.html - 14 -
  15. 15. ・JA 福岡「Excel to Calc マクロ移行マニュアル」 http://www.ja-fukuoka.or.jp/blog/archives/2012/05/exceltocalkpdf.php ・OSS( Open Source Software )でいこう!!/Macro の一歩  http://openoffice3.web.fc2.com/macro_ippo.html ・Macro の杜(OpenOffice.org/LibreOffice Basic 編)/[ マクロ for OpenOffice.org and LibreOffice ]  http://openoffice3.web.fc2.com/OOoBasic_Calc.html ・MRI オブジェクトブラウザ(「 MRI-1.2.1.oxt 」をダウンロードする。)  http://extensions.services.openoffice.org/en/project/mri-uno-object-inspection-tool  https://github.com/hanya/MRI/wiki/Home_ja  http://openoffice3.web.fc2.com/OOoBasic_General.html#OOoGMM01  http://hermione.s41.xrea.com/pukiwiki/index.php?OOoBasic/Macros/MRI/Documentation/Tips ・コマンド URL 一覧   http://hermione.s41.xrea.com/pukiwiki/index.php?OOoBasic%2FGeneric%2Fcommands_2.3.0 以上です。 補足 この文書は、LibreOffice Writer で作成したものを、ハイブリッド PDF で公開します。 PDF として閲覧が可能なほか、LibreOffice Writer で開けば、「ナビデーター(F5)」 や「スタイルと書式設定(F11)」を見ることで、「見出し」や「スタイル」が適用して あることが確認していただけると思います。そちらもぜひ参考にしてください。 ライセンス この文書は「CC BY-SA」で公開します。 筆者:那谷 進 - 15 -

×