1. ホーム
  2. excel

[解決済み] 配列に対してfor eachループを使用するにはどうしたらよいですか?

2022-03-06 16:05:52

質問

文字列の配列があります。

Dim sArray(4) as String

配列の中の各Stringを調べています。

for each element in sarray
  do_something(element)
next element

do_something は、パラメータとして文字列を受け取ります。

要素をStringとして渡すとエラーが発生します。

ByRef 引数の不一致

要素をStringか何かに変換した方がいいのでしょうか?

どのように解決するのですか?

要素はバリアントである必要があるので、文字列として宣言することはできません。関数は文字列であればバリアントを受け入れるはずですが、ByValで渡す限りはそうです。

Public Sub example()
    Dim sArray(4) As string
    Dim element As variant

    For Each element In sArray
        do_something (element)
    Next element
End Sub


Sub do_something(ByVal e As String)

End Sub

もう一つのオプションは、バリアントを文字列に変換してから渡すことです。

  do_something CStr(element)