注:この回答は、もともとOPのKibbeeが自己回答として書いたものです。ただし、実際の個別の回答としてではなく、質問の本文に記載されていました。モデレーターを含めた他のユーザーからの度重なる再投稿リクエストをサイトルール上、OPが拒否しているため、自分で再投稿しています。
100 もの異なることを試し、コードをリファクタリングし、デバッガーでコードを何度もステップ実行し、同僚に問題を調べてもらった後、私はついに天才のひらめきで答えを発見しました。
コードをリファクタリングしていたある時点で、関数を変更して Value パラメーターを削除し、次のようにしました。
Public Function GetSomeStringValue() As String
... Code Goes here
Return Some_Multicharacter_String
End Function
ただし、関数を呼び出すときに渡していたパラメーターを削除するのを怠りました。
SomeStringValue = GetSomeStringValue(Value)
コンパイラは、VB6 時代からのレガシー機能である括弧なしで関数を呼び出していると解釈したため、文句を言いませんでした。次に、関数から返された文字列 (別名文字配列) の配列インデックスに変換された Value パラメーター。
したがって、パラメーターを削除すると、すべて正常に機能しました。
SomeStringValue = GetSomeStringValue()
他の人が問題に遭遇したときに問題を認識し、私よりもはるかに迅速に解決できるように、これを投稿しています。私が解決するのにかなりの時間がかかりました。他の人の時間を節約できることを願っています。