2016-09-27 3 views
-1

私はcode1のマクロを持っています。現在のところ、選択は単純なデータ検証のために行われます(ユーザーはリストから項目を選択するだけです)。選択が行われた後、ユーザはbutton1を押して、code1マクロが実行されます。 VBA excel - 他のコードのコンボボックスからの値を使用

代わりにデータ検証のiは、初回のユーザがbutton1に言及した後、userform1としてappeard combobox1リストから項目を選択し、コード内でその値を使用したい

私は、コンボボックスとユーザーフォームのための簡単なコーディングを見つけました。ここで私は私のcode1データだけでセルの値をとりコンボボックスとユーザーフォーム

Private Sub ComboBox1_Click() Unload UserForm1 End Sub Private Sub ComboBox1_AfterUpdate() Dim fruit As String fruit = ComboBox1.Value End Sub Private Sub Userform_Initialize() Dim fruits As Variant ReDim fruits(4) fruits = Array("banana", "mango", "orange", "berry") ComboBox1.ColumnCount = 1 ComboBox1.List() = fruits End Sub

見つかりコードがあるこれはそれ自体で動作しますが、私は私のcode1

にこれを実装する方法を知りません妥当性検査を行い、それに付随して行いますIdでは代わりにコンボボックスから値を取るのが好きです。 code1worksheets("Sheet1").range("a1").valueの代わりにComboBox1.Valueまたはfruitを入れても役に立たない。

これらのコードを一緒にマージする方法はわかりません。

お手伝いできますか?あなたのUserForm1のコードモジュールで

+0

ボタンをクリックすると、コンボボックスでフォームが表示され、その選択されたコードの値が実行されると、ボタンが表示されます。 – jsanchezs

+0

'Subcode1()'が 'Userform(Code) 'ウィンドウにない場合、' UserForm1.ComboBox1.Value'でコンボボックスの値を取得できます。 – Tyeler

+0

@Tyeler - いったんフォームがアンロードされると、値はもう利用できなくなります – YowE3K

答えて

0

は、あなたのメインのコードモジュールで(Module1の?)を使用すると、現在の変数fruitの宣言を取り除く以外、設定したコード、すなわち

Option Explicit 
Private Sub ComboBox1_Click() 
    Unload UserForm1 
End Sub 
Private Sub ComboBox1_AfterUpdate() 
    fruit = ComboBox1.Value 
End Sub 
Private Sub Userform_Initialize() 
    Dim fruits As Variant 
    ReDim fruits(4) 
    fruits = Array("banana", "mango", "orange", "berry") 
    ComboBox1.ColumnCount = 1 
    ComboBox1.List() = fruits 
End Sub 

を持っているようなコードが含まれています。

Option Explicit 

Public fruit As String 

Sub code1() 
    UserForm1.Show 
    MsgBox "You selected " & fruit 
End Sub 

Sub Button1_Click() 
    code1 
End Sub 

Publicとして)コードモジュールでfruitを宣言し、ユーザーフォームは、その値を更新することができるであろう、そしてマクロの値を読み取ることができるようになります。

+0

@ YowE3Kそれは働いた。ところで私はあなたのような色付きのフォントで灰色のフィールドのVBAコードを持つことができるように私はここに投稿をフォーマットするのですか? – mm90

+0

@ mm90 - コードを書式設定する最も簡単な方法は、コードを貼り付けることです。コードを前後に空白行が1つ以上あることを確認してから、セクション全体を強調表示してCtrl-Kを押します。 (それはちょうど右にシフトするので、各行の先頭に少なくとも4つのスペースがありますので、より難しいのは、手作業で4つのスペースを挿入することです)。そして小さなスニペットをコメントなどに囲んで'this''のように見えます。前後にマークを入れます。 – YowE3K

関連する問題