bar_1

contents_map

2016年11月28日月曜日

LibreOffice Basic の Option と定数の一覧

LibreOffice BASIC のオプション (Option) と定数 (Constants) について、公式のドキュメントを検索したけど、みつからない。そこで Web 上の情報とソースコードを調べてみた。

2016年11月19日土曜日

LibreOffice Basic のプログラミング: 基本



基本

このセクションでは、LibreOffice Basic の基本について説明します。
LibreOffice Basic のコードは、Sub...End SubFunction...End Function セクションで定義するサブルーチンおよび関数から構成されます。1 つの Sub および Function からは、他の Sub や Function を呼び出すこともできます。Sub や Function を記述する際に、可能な限り汎用的なコードにしておくと、他のプログラムで再利用できる可能性が高まります。プロシージャーおよび関数 も参照してください。
Note.png パブリック変数やサブルーチン、関数の名前にはいくつかの制限が適用されます。同じライブラリのモジュールのいずれかと同じ名前を使ってはいけません。

1. Sub (サブルーチン) の用途

Sub とは、サブルーチン (subroutine) を省略したもので、1 つのプログラム中で実行する特定のタスクをブロック化する際に使用します。 サブルーチンを利用することで、1 つのタスクを複数のプロシージャーに分割することができます。 プログラムの構造を複数のプロシージャーやサブプロシージャーに分割すると、コードの可読性が高まると同時に、エラーの発生を抑える効果も期待できます。 下記の例のように、サブルーチンにはパラメーターとして複数の引数を渡すことも可能ですが、呼び出し元のサブルーチンや関数に戻り値を返すことはできません。
DoSomethingWithTheValues(MyFirstValue,MySecondValue)

2. Function (関数) の用途

Function の基本的な機能はサブルーチンと同じですが、戻り値を返せるという点が異なります。下記の例のように、変数宣言部の右側に関数を配置することも可能で、通常の値の代わりに直接関数を記述することもできます。
MySecondValue = myFunction(MyFirstValue)

3. 大域および局所変数

大域変数とは、1 つのモジュール内にあるすべてのサブルーチンと関数で使用できる変数のことです。これらの宣言は、モジュール内のすべてのサブルーチンや関数より前に記述する必要があります。
個々のサブルーチンや関数の中で宣言した変数は、該当するサブルーチンや関数の内部でのみ使用できます。これらの変数は、上位のサブルーチンや関数から継承した局所変数や大域変数と同じ名前があっても優先的に使用されます。

4. 構造化

プログラムをプロシージャーや関数 (Sub および Function) に分割して記述した場合、個々のプロシージャーや関数をファイルに保存して、他のプロジェクトで再使用することができます。LibreOffice Basic には、モジュールとライブラリ の機能が用意されています。サブルーチンや関数は、常にモジュール内に定義されます。モジュールは、大域的に使用することも、特定ドキュメント内部でのみ使用することもできます。また複数のモジュールをまとめて、1 つのライブラリとすることもできます。
サブルーチン、関数、モジュール、ライブラリは、ダイアログ マクロ を使用することで、ファイル間のコピーおよび移動が行えます。

2016年11月18日金曜日

LibreOffice Basic のプログラミング


Basic ヘルプ > LibreOffice Basic のプログラミング

LibreOffice Basic のプログラミング

(blogspotの記事のパーマリンクでは、アンダースコアを含めても消される)
ここではマクロおよび LibreOffice Basic の一般的な使用法を解説します。
  • 基本
    このセクションでは、LibreOffice Basic の基本について説明します。
  • 構文
    このセクションでは、LibreOffice Basic の基本的な構文について解説します。詳細情報については、別途用意された『LibreOffice Basic ガイド』を参照してください。
  • 統合開発環境 (Integrated Development Environment: IDE)
    このセクションでは、LibreOffice Basic の統合開発環境 (Integrated Development Environment: IDE) について解説します。
  • イベント駆動型マクロ
    このセクションでは、Basic プログラムをプログラムイベントに割り当てる方法について解説します。

LibreOffice Basic ヘルプ

LibreOffice Basic のヘルプ・ドキュメントのHP があまりに使いにくいので、使いやすく改変したものをここに書いていきますね。この記事およびこのブログ (voidptrjp.blogspot.jp) 内のヘルプ・ドキュメントに直接関連する記事のライセンスは LGPLv3 となります。
オリジナルのドキュメントのライセンス表示:
特に記載がない限り、内容はthe GNU Lesser General Public License (LGPLv3), unless otherwise specified, originally based on OpenOffice.org help. “LibreOffice” and “The Document Foundation” are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policyのライセンスで利用できます。

LibreOffice Basic ヘルプ


Basic ヘルプ >

LibreOffice は、LibreOffice ソフトウェア開発キット (SDK) を用いるプログラム開発言語に対して LibreOffice コンポーネントの操作を可能にする、アプリケーションプログラミングインタフェース (API) を提供します。LibreOffice API および ソフトウェア開発キットに関する、より詳しい情報は、http://api.libreoffice.org/ をご覧下さい。
このヘルプ項目は、もっとも一般的な LibreOffice Basic のランタイム機能を説明します。より詳細な情報を得るためには、Wiki の OpenOffice.org BASIC プログラミングガイド を参照してください。

LibreOffice Basic の使い方

ヘルプの操作法

ヘルプではシステムで設定されているデフォルトプログラムの標準設定を参照します。色、マウスの動作、その他の設定できる項目はシステムやプログラムによって異なる場合があります。
  • LibreOffice ヘルプウィンドウ(Common/The_Help_Window.html)
  • Tips and Extended Tips(Common/Tips_and_Extended_Tips.html)
  • 索引 - ヘルプのキーワード検索(Common/Index_-_Keyword_Search_in_the_Help.html)
  • 検索 - 全文検索(Common/Find_-_The_Full-Text_Search.html)
  • ブックマーク管理(Common/Managing_Bookmarks.html)
  • 目次 - ヘルプの主要トピック(Common/Contents_-_The_Main_Help_Topics.html)

2016年11月17日木曜日

Mac の GIMP 2.8.18 でインストール版の日本語のヘルプを使うには

以前(2014年)Mac の GIMP 2.8.10 向けに、同様のことをおこなう方法を書きました。それから時が経ち、GIMP に組み込まれている GTK の仕様が若干変わったことから、以前書いた方法では、うまく行かなくなってしまったようです。
そこで試行錯誤したところ、新たに GIMP 2.8.18 でインストール版の日本語のヘルプ (= GIMP User Manual; 使用のてびき) や状況適応ヘルプ、今日の技を見るための解法を見つけることができたので、本記事として取り上げたいと思います (オンライン版の日本語ヘルプを使いたい人は、以下の作業は必要ありません。GIMP を起動してからヘルプの設定で オンライン版 を選べば問題なく利用できます)。

LibreOffice Calc でちょっとハマったことなど

  • Calcのシート側から使うユーザ定義の関数として、セルの中にあるテキスト(数字から構成されたものとする)を数値に変換する関数 (SubではなくFunction) を LibreOffice Basic で実装できないものか、調べていた。できればExcel VBAと互換性のある方法がよかった。
  • VALUE(), INDIRECT(), ADDRESS(), などがあることがわかった
  • ところが、いざ使おうとセルに =VALUE() と入力すると エラー:502 となってしまった
  • Googleで LibreOffice Basic Calc セルを指定して文字列を数値に などとして検索
  • 結局、VALUEが参照するセルの内容が"123"のようにダブルクォートされていたことがエラー:502の原因であった。正しくは'123としなくてはいけない。関数のエラーメッセージがもっとわかりやすければいいのに。。
  • 公式のドキュメントも、どうもわかりにくい……。書き直して記事にしてみようかな