[VBA]関数へObjectを渡した時、”ByRef引数の型が一致しません”エラーが出たら

関数の引数にObjectの変数を渡したとき”ByRef引数の型が一致しません”エラーが出た。
調べてみたところ、変数の型指定を明示してあげると上手く動いた。

ダメパターン:変数paramListの型を明示していない。

Sub MainFunc()
    Set paramList = CreateObject("Scripting.Dictionary")
    SubFunc(paramList)
End Sub
 
Function SubFunc(paramList As Object)
	' do something
End Function



OKパターン:paramListをObject型として定義している。

Sub MainFunc()
	Dim paramList As Object
    Set paramList = CreateObject("Scripting.Dictionary")
    SubFunc(paramList)
End Sub
 
Function SubFunc(paramList As Object)
	' do something
End Function

関連記事

コメントを残す

メールアドレスが公開されることはありません。