Excel VBAを使っていると、「戻り値」という言葉を耳にすることがあるかもしれません。でも、実際に何を意味しているのか、どう使うのか、よくわからないという方も多いのではないでしょうか?今回は、そんな初心者の方々に向けて、Excel VBAにおける「戻り値」について、わかりやすく解説します。
戻り値って何?
まず、「戻り値」とは、関数が処理を終えた後に返す結果のことです。例えば、2つの数を足す関数を作ったとしましょう。その関数を実行すると、足し算の結果が「戻り値」として返されます。
戻り値を使う理由
戻り値を使うことで、関数を呼び出した場所でその結果を利用することができます。例えば、計算結果をセルに表示したり、他の処理に利用したりすることが可能になります。
Excel VBAでの戻り値の使い方
では、実際にExcel VBAで戻り値を使う方法を見てみましょう。
関数の定義
まず、関数を定義します。以下のように記述します。
vba
Function 足し算(a As Integer, b As Integer) As Integer
足し算 = a + b
End Function
この関数は、引数として2つの整数を受け取り、その合計を戻り値として返します。
関数の呼び出し
次に、この関数を呼び出してみましょう。
vba
Sub 実行()
Dim 結果 As Integer
結果 = 足し算(3, 5)
MsgBox 結果
End Sub
このコードを実行すると、メッセージボックスに「8」と表示されます。
戻り値の利用
戻り値は、計算結果を他の処理に利用する際に非常に便利です。例えば、セルに計算結果を表示する場合、以下のように記述します。
vba
Sub セルに表示()
Cells(1, 1).Value = 足し算(3, 5)
End Sub
このコードを実行すると、セルに「8」と表示されます。
よくある質問や疑問
Q1: 戻り値を使わない場合はどうするの?
戻り値を使わない場合は、Subプロシージャを使用します。Subプロシージャは、処理を実行するだけで結果を返しません。例えば、以下のように記述します。
vba
Sub メッセージ表示()
MsgBox "Hello, VBA!"
End Sub
このコードを実行すると、メッセージボックスに「Hello, VBA!」と表示されます。
Q2: 戻り値としてオブジェクトを返すことはできるの?
はい、できます。オブジェクトを戻り値として返す場合は、Setステートメントを使用します。例えば、以下のように記述します。
vba
Function セル範囲() As Range
Set セル範囲 = Range("B2")
End Function
この関数は、セル範囲:B2を戻り値として返します。
Q3: 戻り値のデータ型はどう決めるの?
戻り値のデータ型は、関数が返す値の種類によって決まります。例えば、整数を返す場合はInteger型、文字列を返す場合はString型を指定します。以下のように記述します。
vba
Function 名前() As String
名前 = "田中"
End Function
この関数は、「田中」という文字列を戻り値として返します。
まとめ
今回は、Excel VBAにおける「戻り値」について解説しました。戻り値を使うことで、関数の結果を他の処理に活用することができます。初心者の方でも、少しずつ学んでいけば、VBAのスキルを向上させることができます。もし他にも疑問やお悩み事があれば、お気軽にLINEからお声掛けください。



コメント