LibreOffice CalcのVBAでFor文を使って同じ処理を繰り返す
LibreOffice Calcとは?
LibreOfficeは、The Document Foundationが支援する自由・オープンソースのオフィスソフトです。
ワープロ、表計算、プレゼンテーション、データベース、数式エディタの5つのアプリケーションで構成されています。
Microsoft Officeと互換性があります。
LibreOfficeの表計算ソフト…Excelに該当するのが、LibreOffice Calcです。
LibreOffice CalcはVBAで自動化でき、業務を効率化できる
ExcelというとVBAでプログラムをして自動化して業務を効率化することが出来ます。
では、LibreOffice Calcでプログラムをして自動化して業務を効率化する、どのように行えばいいのか?、分からないという方は多いのではないでしょうか?
LibreOffice Calcでプログラムをして自動化して業務を効率化する…その情報が非常に日本語で説明されているものが少なく、また見つけたとしても、これを覚えるのが大変だったりします。
しかし、それを解決する方法があります。
LibreOfficeでVBAを使うのです。
実はLibreOffice Calcは、VBAを使用することが出来ます。
VBAならたくさんの情報があります。
今回のブログ記事では、そのLibreOffice CalcのVBAでFor文を使って同じ処理を繰り返す方法をご紹介します。
なお今回、Windowsを使用しましたが、Linuxでも使用できることを確認しました。
LibreOfficeを使われる方はLinuxユーザーが多いと思いますので、ぜひともLibreOfficeでVBAを使用していただきたいと思っています。
LibreOffice CalcのVBAでFor文を使って同じ処理を繰り返す方法
LibreOffice CalcのVBAでFor文を書く方法
Excel VBAで同じような処理を繰り返し(ループ)させるには、For文を使います。
このVBAのFor文ですが、LibreOffice Calcでも使用できます。
For文の基本文ですが、以下の通りです。
Dim i As Long
For i = 開始値 To 終了値
処理
Next i
この基本文の説明をします。
① Dim i As Long
これはFor文の変数の宣言です。
変数名は何でもいいのですが、一般的にはindexの単語の最初の文字のiが使われます。
この変数ですが、カウント変数と呼ばれるもので、For~Nextを繰り返すたびに値が1ずつ加算されていくという特性を持つ変数です。
Longは整数型変数と呼ばれるもので、簡単に言うとこの変数は整数です、という意味です。
繰り返しを行う場合は、1回、2回,3回と整数を使うので、必ず整数型変数であるLongは入力します。
② For i = 開始値 To 終了値
Forと入力し、半角スペースを空けてカウント変数のiを入力します。
その後に=を入力し、繰り返しを始める開始値を入力し、Toを入力後に、繰り返しを終了させるための終了値を入力します。
例えば1~5回繰り返したい場合は、1は開始値で、5は終了値になります。
なのでFor i = 1 To 5と入力すれば、1~5回まで繰り返しを行うという意味になります。
③ 処理
繰り返しさせたい処理を入力します。
④ Next i
Nextと入力後にカウント変数のiと入力します。
カウント変数は、①で説明した通り、Next iに到達すると、For~Nextを繰り返すたびに値が1ずつ加算されていくという特性を持つ変数です。
なのでカウント変数i に1ずつ加算され、終了値になるまで繰り返しを行います。
For i = 1 To 5と入力した場合、1に1が加算され2となり、これが5になるまで繰り返しが行われます。
具体的に例を10回繰り返しを行わせる場合は以下のようになります。
Dim i As Long
For i = 1 To 5
処理
Next i
1から5回繰り返しを行いたい場合は、開始値を1、終了値を10と入力します。
Nextの後のカウント変数iに1プラスされ、カウント変数iが5になるまで繰り返しが行われます。
For文の具体例 メッセージボックスを5回繰り返して表示させる
例えばメッセージボックスを5回繰り返して表示させる場合は、以下のコードを書きます。
Option VBASupport 1
REM ***** BASIC *****
Sub messageBox
Dim i As Long
For i = 1 To 5
MsgBox "メッセージボックスを5回クリックしてください"
Next i
End Sub
これをF5キーを押して、実行させてください。
以下のようにメッセージボックスが現れます。
それをOKを5回押してください。
するとメッセージボックスが消えます。
つまりメッセージボックスのOKボタンをクリックを5回繰り返すと、メッセージボックスが消える、つまり繰り返しの処理が終了したわけです。
For文の具体例 表の金額(単価✕数量)の計算を2~20行まで繰り返す
これを応用してみましょう。例として以下の表の金額(単価✕数量)の計算を2~20行まで繰り返しを行います。
コードは以下の通りです。
※関数名は繰り返しにしました。
Option VBASupport 1
REM ***** BASIC *****
Sub 繰り返し
Dim i As Long
For i = 2 To 20
Dim kurikaeshi As Long
kurikaeshi = Range("D" & i).Value * Range("E" & i).Value
Range("F" & i).Value = kurikaeshi
Next i
End Sub
ここで注目してほしいのが、以下のコードです。
kurikaeshi = Range("D" & i).Value * Range("E" & i).Value
Range("F" & i).Value = kurikaeshi
セルの指定が”D” & i、”E” & i 、”F” & iとなっています。D、E、Fという列の後に& iと入力されています。D、E、Fという列のカウント変数iが追加されています。
& iと入力することで、D2がD3、E2がE3,F2がF3と1ずつ加算され、これがD20、E20、F20まで繰り返しが行われます。
実際にF5キーを押して実行すると、以下のように表の金額(単価✕数量)の計算を2~20行まで計算が繰り返し行われます。
理解が難しいと思う方もいらっしゃると思いますので、そういう方は、こういう計算を行う場合は、Range(“D” & i)のように、列の後に& iを付けると暗記してください。何度もこのFor文の練習を行っていけば、理解が出来るようになります。