|
遅くなりました
▼neptune さん 検証して頂きありがとうございます
>で、確認しましたが、問題なく動作しました。
>VB6でも上記で検証しましたが、やはり、問題は発生しませんでした。
>なので、何故、エラーが出るかは?です。
>念の為、Bookの破損を切り分ける為、
>新しいBookを作成して、検証をやり直してみてはどうですか?
>この辺りしか思い付きません。
再起動後、同一ブックでエラーは発生しなくなりました
これで、他のアプリケーションに、引数渡しすることが出来るようになりました
ありがとうございました。
今まで、同一アプリケーション内では通常
function関数で処理させ戻り値を利用することばかりでした
ということで、これらは
特に意識することなく参照渡し ByRefで使用していました
今回の件名で、値渡ししたいということで、この辺がわからないまま
ためしていたので??の状態だったようです
>ググッたり、試したりしているうちに、大変遅くなってしまいました
について理解のないままではまずいと振り返ってみました
通常は
Function new_str(n_str1 As String, n_str2 As String) As String
new_str = n_str1 & str2
End Function
Sub get_str()
Dim str1 As String
Dim str2 As String
str1 = "hoge"
str2 = " fuga"
Debug.Print new_str(str1, str2)
End Sub
のような利用の仕方しています
今回の
>なぜだか、うまく動かせずに
は、下記のような場合で、下記、変に加工するとすぐエラーになってしまい
うまく修正することは出来ないのですが
ByValの時は123のようになるよな気がするのですが hoge fuga になってしまいます
基本がわかっていないので、コード自体が変かもしれませんが
アドバイス頂けるとうれしいですよろしくお願い致します
Sub Test()
Dim str1 As String
Dim str2 As String
Dim out As String
str1 = "hoge"
str2 = " fuga"
out = "123"
'Call ByVal_str(str1, str2, out)
Debug.Print "Test1:" & ByVal_str(str1, str2, out)
'Call ByRef_str(str1, str2, out)
Debug.Print "Test2:" & ByRef_str(str1, str2, out)
End Sub
Function ByVal_str(ByVal idx1 As String, ByVal idx2 As String, ByVal modori As String) As String
ByVal_str = idx1 & idx2
Debug.Print "ByVal_str:" & ByVal_str
End Function
Function ByRef_str(ByVal idx1 As String, ByVal idx2 As String, ByRef modori As String) As String
ByRef_str = idx1 & idx2
Debug.Print "ByRef_str:" & ByRef_str
End Function
ByVal_str:hoge fuga
Test1:hoge fuga
ByRef_str:hoge fuga
Test2:hoge fuga
|
|