2017-04-17 9 views
1

不足している経験不足:VBAでは、渡された引数の値を変更するサブルーチンを作成しました。これは、グローバルフィールドでは正常に動作しますが、フォーム上のテキストボックスなどを渡すときには正常に動作しません。私はテキストボックスが変更されることを期待しますが、それはしません。したがって、たとえば(擬似コード):VBA - ByRefを使用してフォームフィールドをサブルーチンに渡す

Public Subroutine ChangeVal (ByRef abcde) 
abcde = abcde * 2 
End Sub 

ChangeVal "txtabcde" 

は機能しません。

答えて

0

あなたの値を渡すことはできますが、この値が特定のオブジェクトに属することはわかりません。

Public Sub ChangeVal2(ByRef obj) 
    obj.Value = obj.Value * 2 
End Sub 

そして、このようにそれを呼び出す:

ChangeVal2 ActiveSheet.TextBox1 
あなたはこのようなものを使用しなければならないと思い(あなたのテキストボックスに「TextBox1テキストボックス」の名前でのActiveXのテキストボックスであると仮定して)やりたいために、
関連する問題