【LibreOffice Calc】LibreOffice CalcのVBAでFor文で同じ処理を繰り返す方法

※当サイトは Google Adsense、Amazon アソシエイト等 アフィリエイト広告を利用して収益を得ています。

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回繰り返して表示させる場合は、以下のコードを書きます。

【LibreOffice Calc】LibreOffice CalcのVBAでFor文で同じ処理を繰り返す方法
Option VBASupport 1
REM  *****  BASIC  *****

Sub messageBox
	
	Dim i As Long

	For i = 1 To 5
	
	MsgBox "メッセージボックスを5回クリックしてください"

	Next i
	
End Sub

これをF5キーを押して、実行させてください。

以下のようにメッセージボックスが現れます。

【LibreOffice Calc】LibreOffice CalcのVBAでFor文で同じ処理を繰り返す方法

それをOKを5回押してください。

するとメッセージボックスが消えます。

つまりメッセージボックスのOKボタンをクリックを5回繰り返すと、メッセージボックスが消える、つまり繰り返しの処理が終了したわけです。

For文の具体例 表の金額(単価✕数量)の計算を2~20行まで繰り返す

これを応用してみましょう。例として以下の表の金額(単価✕数量)の計算を2~20行まで繰り返しを行います。

【LibreOffice Calc】LibreOffice CalcのVBAでFor文で同じ処理を繰り返す方法

コードは以下の通りです。

※関数名は繰り返しにしました。

【LibreOffice Calc】LibreOffice CalcのVBAでFor文で同じ処理を繰り返す方法
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行まで計算が繰り返し行われます。

【LibreOffice Calc】LibreOffice CalcのVBAでFor文を使って同じ処理を繰り返す方法

理解が難しいと思う方もいらっしゃると思いますので、そういう方は、こういう計算を行う場合は、Range(“D” & i)のように、列の後に& iを付けると暗記してください。何度もこのFor文の練習を行っていけば、理解が出来るようになります。

タイトルとURLをコピーしました