Excel VBAで関数を作成しているときに発生したエラーについて解説します。特に、set_cell_v関数が正しく動作しない場合の原因とその修正方法を詳しく説明します。
1. VBAのset_cell_v関数のエラー原因
質問者が示したset_cell_v関数では、set_cell_v = vというコード行が問題の原因となっています。VBAでは、関数内で値を返す際には、関数名に値を代入する必要があります。つまり、関数名自体に値を返すのではなく、set_cell_vという関数に値を返す必要があります。
2. 正しい関数の書き方
質問者のコードを修正するには、関数内で返すべき値を明確に指定する必要があります。修正後のコードは以下の通りです。
Function set_cell_v(y, x, v)
Worksheets("FileList").Cells(y, x).Value = v
set_cell_v = v
End Function
修正ポイントは、関数の最後に返す値(ここではv)をset_cell_vに代入することです。これで関数が正しく動作するはずです。
3. get_cell_v関数との違い
質問者が示したget_cell_v関数は、正常に動作するとのことですが、この関数は値を返す際に同じようにget_cell_v = tempとしています。この書き方が正しい形式です。値を返す際には、関数名に代入する形式で戻り値を設定することを覚えておきましょう。
4. まとめと注意点
VBAで関数を作成する際に、関数内で返す値を設定する方法が正しくない場合、エラーが発生します。set_cell_v関数の修正方法を学び、他の関数にも応用していきましょう。また、関数名に代入する形式で値を返すことが大切です。


コメント