LibreOffice(Calc)でのマクロ : 4. セルの扱いと変数

ユーザー Mr. Union の写真
2014年6月23日 -- Mr. Union

セルに何かを表示するとき、変数を用いることもできます。

Sub Test

Dim oDoc As Object

Dim oSheet As Object

Dim oCel As Object

Dim Moji As String ‘ 文字列変数「Moji」を宣言。

Moji=”これはテストです。” ‘ 文字列変数「Moji」に「これはテストです。」という文字列を入れる。

oDoc=StarDesktop.CurrentComponent

oSheet=oDoc.Sheets(0)

oCel=oSheet.getCellRangeByName(“A1″)

oCel.String=Moji ‘ セル「A1」に文字列変数「Moji」の中身を入れる。

End Sub

こ れだと、例えば「oCel.String=”これはテストです。”」といった具合に、直接セルに文字列を入れているのと、結果的には何も変わりま せん。ただ、一度、「Moji」という文字列変数を介して、セルに入力している、というだけのことになります。ただし、変数が使えるということは、次のよ うなこともできます。

上のマクロを次のように、若干変更してみます。

Sub Test

Dim oDoc As Object

Dim oSheet As Object

Dim oCel As Object

Dim Moji As String

oDoc=StarDesktop.CurrentComponent

oSheet=oDoc.Sheets(0)

oCel=oSheet.getCellRangeByName(“A1″)

Moji=oCel.String ‘ 文字列変数「Moji」にセル「A1」の中身を入れる。

MsgBox (Moji) ‘ メッセージボックスで文字列変数「Moji」(即ち「A1」)の中身を表示させる。

End Sub

先 ほどは、変数を使って、セルの中身を変えましたが、逆にセルの中身を変数の中に格納してみました。その後、「MsgBox」で、その変数の中身を 表示させています。こうすることで、メッセージボックスの中身は、表示される度に、セル「A1」の中身を表示させることになるわけです。

クリックで拡大します

さらに、こうした変数を組み合わせてみたり、数値型の変数を使って計算結果を表示させることもできます。

Sub Test

Dim oDoc As Object

Dim oSheet As Object

Dim oCel As Object

Dim Moji1 As String

Dim Moji2 As String ‘ 二つの文字列変数を宣言する。

oDoc=StarDesktop.CurrentComponent

oSheet=oDoc.Sheets(0)

oCel=oSheet.getCellRangeByName(“A1″)

Moji1=oCel.String ‘ 文字列変数「Moji1」に「A1」の中身を入れる。

oCel=oSheet.getCellRangeByName(“A2″)

Moji2=oCel.String ‘ 文字列変数「Moji2」に「A2」の中身を入れる。

MsgBox (“A1セルには” & Moji1 & “で、A2セルには” & Moji2 & “が入力されています。”) ‘ 文字列変数「Moji1」、「Moji2」を用いたメッセージボックスを表示させる。

End Sub

上の例は、複数の文字列変数を使って、メッセージボックスに表示させる中身を構成させたものです。これを実行すると、例えば、以下のようなメッセージボックスが表示されることになります。

クリックで拡大します