LibreOffice(Calc)でのマクロ : 2. メッセージボックスと変数

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

まずは変数を使わずにメッセージを表示させてみる

「Test」というマクロで、メッセージボックスを表示するマクロを作ってみます。

例えば、マクロのタイトルが、「Sub Test」となっていたら、その次の行に「MsgBox (“これはテストです。”)」と記述してみます。さらに、その次の行には「End Sub」です。つまり、全体の記述は以下の通りとなります。

Sub Test

MsgBox(“これはテストです。”)

End Sub

こ れを入力したら、Calcのウィンドウに戻って、「ツール」→「マクロ」→「マクロの実行」を選択していきます。すると、以下のような画面が出て くるので、そこから「無題1」→「Standard」→「Module1」を選ぶと、右側に「Test」というマクロが出てくるので、これを選択して実行 してみてください。

実行すると、以下のようなメッセージボックスが表示されます。

「MsgBox(“”)」は、(“”)で囲まれた文字列をこのようにメッセージボックスとして表示してくれます。

変数を使うとどうなるか

それでは次に、変数を使ってメッセージを表示させてみましょう。さっきのマクロに2行だけ追加して、「MsgBox」の部分も、「MsgBox(“これはテストです。”)」ではなく、「MsgBox(Moji)」に変えてみます。

このマクロを実行すると、さっきとまったく同じように「これはテストです。」というメッセージボックスが表示されます。つまり、見た目は全く同じ結果が出ているわけですが、何が違うかというと、変数を使っているという点です。

変 数とは、データを入れる入れ物みたいなものです。「MsgBox(“これはテストです。”)」は、そのまま(” “)の間のものを表示させているのに対し、変数を使うと、一度、変数(この場合は、「Moji」という入れ物)に「これはテストです。」という文字列を格 納させて、「MsgBox(Moji)」で、「Moji」という変数の中身をメッセージボックスに表示させる、ということになります。

クリックで拡大します

こ こでは、「Dim Moji As String」というところで、変数を宣言して、「Moji」という変数を使えるようにしています。その後、「Moji=”これはテストです。”」という 記述で、その変数「Moji」に「これはテストです。」という文字列を入れて、「MsgBox(Moji)」で、変数「Moji」の中身である「これはテ ストです。」という文字が、メッセージボックスに表示される、という流れになっています。

上記の例では、「これはテストです。」という文字列の変数を使用していますが、変数には文字列以外に数値や日付などを扱う「型」があります。変数の型の代表的なものは以下の通りです。

String 文字型  
Integer 整数型 -32,768~32,767の範囲
Long 整数型 -2,147,483,648~2,147,483,647の範囲
Currency 通貨型 -922,337,203,685,477.5808~922,337,203,685,477.5807の範囲
Data 日付型 西暦100年1月1日~西暦9999年12月31日

変 数を使う時は、必ず、その前にその変数を宣言しておきます。変数の宣言をするときは、「Dim 変数名前 As 変数の型」というかたちをとります。前述のマクロで言うと、「Dim Moji As String」がその宣言文になるわけで、「Moji」という変数を「String」即ち文字列として宣言していることになります。

先ほどは、文字型の「Moji」という変数に、「これはテストです。」という文字を入れましたが、例えば、以下のように整数型の変数として宣言をしてしまうと、メッセージボックスには、「0」が表示されてしまいます。

これは、変数「Moji」が数値型として定義されているため、そこにどんなに文字列を入れようとしても、それらが正しく反映されない結果です。変数を使う場合は、それをどのように使うのかを想定して、それに適合した型を予め宣言しておく必要があります。