Table of Contents
無料で使える表計算ソフト LibreOffice Calc の Basic でセルを扱う方法を説明します。 Excel VBA だと Cell(1, 2)
のように扱えますね。
環境
試した環境は次のとおりです。
- LibreOffice 5.1.4.2
- OS: Ubuntu 16.04.1 LTS
基本
セル A1 の内容を書き換えてみます。
セルは シート の getCellByPosition
メソッド で取得します。 そして気をつけるべきは、 Excel VBA と違って 行と列のインデックスが 0 から始まることです。 インデックスの順番も Excel VBA と異なり 列、行 の順番です。
値の代入
セルに値を代入するときには、 Value
, String
, Formula
を使い分ける必要があります。 たいていは Formula
だけを使っていれば大丈夫です。
- Value
- 数値を代入するときに用いる。 数値でない値を代入すると、 スプレッドシートでは
0
になる。 -
- String
- 文字列を代入するときに用いる。 仮に数値を代入したとしても、 スプレッドシートでは左寄せの文字列になる。
-
- Formula
- 数式を代入するときに用いる。 文字列や数値を代入する場合は、文字列は文字列として、数値は数値として取り扱ってくれる。
-
値の読み取り
上と同じように Value
, String
, Formula
を使い分けます。 しかし、普通はセルにどのタイプの値が入っているか(数値なのか文字列なのか)は予めわかっていることが多いので、難しいことはないと思います。
- Value
- 数値の値に対して使用します。 数値でない(文字列形式の)値がセルに入っている場合、
Value
によって取得できる値は 0 です。 - String
- 文字列の値に対して使用します。 文字列でない値(数値)がセルに入っていたとしても、 文字列として値が取得できます。
- Formula
- 数式を取得します。 単純に数値や文字列が入っている場合、うまく扱えば数値にも文字列にもなります。 基本的に文字列と考えて扱うのがいいと思います。
-
計算例
下のように 国語と算数の点数が表になっているとします。 ここで、国語・算数の点数の平均を求めます。 一般的にはこういう場合、式を使って平均を計算します。 ここでは Basic の例としてコードを使います。
A | B | C | D | |
---|---|---|---|---|
1 | 名前 | 算数 | 国語 | 平均 |
2 | 飯田 真一 | 44 | 75 | |
3 | 米田 珈琲 | 73 | 59 | |
4 | 江川 ひさし | 85 | 29 | |
5 | 青山 一郎 | 12 | 30 | |
6 | 三浦 誠 | 55 | 78 | |
7 | 加藤 和男 | 97 | 42 |