VBAで自動化 VBA一覧 セル・値の取得と貼り付け 値渡し・参照

【VBA】メソッドの戻り値(返り値)とは?取得方法と活用例

VBA では、メソッド(Method) を実行すると、何らかの結果(戻り値)を返すことがあります。
この戻り値を適切に取得・活用することで、処理の結果を確認したり、エラーハンドリングを行うことができます。

本記事では、VBA におけるメソッドの戻り値とは何か、どのように取得し、活用するのか を詳しく解説します。

メソッドの戻り値(返り値)とは?

メソッド(Method)とは、オブジェクトに対して実行できる操作(関数やプロシージャ)のこと です。
メソッドを実行すると、処理結果として戻り値(返り値)が返されることがあります。

✅ 戻り値を持つメソッドの例

メソッドオブジェクト戻り値の型説明
FindRangeRangeセルを検索し、見つかったセルを返す
MsgBoxApplicationVbMsgBoxResultユーザーの選択結果を返す
GetOpenFilenameApplicationStringユーザーが選択したファイル名を返す
InputBoxApplicationStringユーザーが入力した値を返す
DirFileSystemStringファイル名を取得

📌 戻り値を受け取らないと、メソッドの実行結果を活用できません!
📌 戻り値を変数に格納することで、後の処理に活かせます!

メソッドの戻り値を取得する方法

メソッドの戻り値は、変数に代入して取得する のが基本です。

✅ 戻り値を取得する基本構文

Dim 変数名 As データ型
変数名 = オブジェクト.メソッド(引数)

Find メソッドの戻り値を取得

Find メソッドは、指定した値を検索し、見つかったセル(Range)を返します。

【コード例】セルを検索し、見つかった場合のアドレスを取得

Sub FindExample()

Dim ws As Worksheet
Dim foundCell As Range

Set ws = ThisWorkbook.Sheets("Sheet1")
Set foundCell = ws.Range("A:A").Find(What:="検索文字列", LookAt:=xlWhole)

If Not foundCell Is Nothing Then

Debug.Print "見つかったセルのアドレス: " & foundCell.Address

Else

Debug.Print "該当セルなし"

End If

End Sub

セルが見つかった場合は Range オブジェクトとして取得可能!
見つからない場合は Nothing になるため、If Not foundCell Is Nothing で確認!

【VBA】Findメソッド:基本構文と使用例

・MsgBox の戻り値を取得

MsgBox は、ダイアログボックスでユーザーに選択肢を与え、選択結果を戻り値として返します。

【コード例】ユーザーの選択を取得

Sub MsgBoxExample()

Dim userChoice As VbMsgBoxResult
userChoice = MsgBox("処理を続けますか?", vbYesNo + vbQuestion, "確認")

If userChoice = vbYes Then

Debug.Print "ユーザーが [はい] を選択しました。"

Else

Debug.Print "ユーザーが [いいえ] を選択しました。"

End If

End Sub

MsgBox の戻り値は VbMsgBoxResult(定数)で受け取れる!
vbYesvbNo で条件分岐が可能!

・GetOpenFilename の戻り値を取得

GetOpenFilename メソッドを使うと、ユーザーが選択したファイルのパスを取得できます。

【コード例】選択したファイルパスを取得

Sub GetFileExample()

Dim filePath As String
filePath = Application.GetOpenFilename("Excelファイル (*.xlsx), *.xlsx")

If filePath <> "False" Then

Debug.Print "選択されたファイル: " & filePath

Else

Debug.Print "キャンセルされました。"

End If

End Sub

ユーザーがファイルを選択すると、そのパスが String で取得可能!
キャンセル時は "False" が返るため、比較して判定!

【VBA】フォルダを指定(ダイアログ・全て・ファイル名の一部指定)でファイルを開く方法

・InputBox の戻り値を取得

InputBox は、ユーザーが入力した値を String 型で取得 できます。

【コード例】ユーザーが入力したデータを取得

Sub InputBoxExample()

Dim userInput As String
userInput = InputBox("名前を入力してください:", "入力画面")

If userInput <> "" Then

Debug.Print "入力された名前: " & userInput

Else

Debug.Print "入力がキャンセルされました。"

End If

End Sub

入力があれば String として取得、未入力やキャンセルの場合は空文字!

Dir の戻り値を取得

Dir メソッドを使うと、特定のファイルやフォルダの有無を確認 できます。

【コード例】指定フォルダ内のファイル一覧を取得

Sub ListFiles()

Dim fileName As String
Dim folderPath As String

folderPath = "C:\Temp\"
fileName = Dir(folderPath & "*.xlsx") ' 最初のファイル取得

Do While fileName <> ""

Debug.Print "ファイル: " & fileName
fileName = Dir ' 次のファイル取得

Loop

End Sub

Dir は、呼び出すたびに次のファイルを取得する!
Do While fileName <> "" で繰り返し取得!

Excel VBAにおけるDir関数の活用法

まとめ

メソッド戻り値の型活用例
FindRangeセル検索結果を取得
MsgBoxVbMsgBoxResultユーザーの選択を取得
GetOpenFilenameStringユーザーが選択したファイルパスを取得
InputBoxStringユーザーが入力した文字を取得
DirStringフォルダ内のファイル一覧を取得
💡 VBA のメソッドの戻り値を活用することで、より柔軟な処理が可能に!

戻り値を変数に格納して活用!
戻り値が Nothing"False" になるケースも考慮!
条件分岐 (If 文) や Loop で戻り値を使いこなそう!

-VBAで自動化, VBA一覧, セル・値の取得と貼り付け, 値渡し・参照