[[20150123111945]] 『combobox複数列の値転記について』(milky) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『combobox複数列の値転記について』(milky)

ユーザーフォームにcomboboxとtextboxがあります。
comboboxにはリストのA:B列を表示し、選択するとA列が入力され
textboxにはB列が表示されます。
これを其々セルに転記したいのですが、登録で”Listプロパティの値が取得できません”
と、エラーが出てしまします。

どの様に修正したら良いでしょうか・・・
ご教授ください。

combobox=コードです。
textbox=発注先です。

Private Sub CommandButton1_Click() '新規

コード.Text = ""
発注先.Text = ""

Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1).Activate

End Sub

Private Sub CommandButton2_Click() '登録

Cells(ActiveCell.Row, 3).Value = コード.Text
Cells(ActiveCell.Row, 4).Value = 発注先.Text

コード.Text = ""
発注先.Text = ""

End Sub

Private Sub UserForm_Initialize() '表示

    Dim lRow As Long
    With Worksheets("リスト")
         lRow = .Range("A" & Rows.Count).End(xlUp).Row
    End With
    With コード
            .ColumnCount = 2
            .ColumnWidths = "30;60"
            .RowSource = "リスト!A2:B" & lRow
    End With

発注先コード.Text = Cells(ActiveCell.Row, 3).Value
発注先.Text = Cells(ActiveCell.Row, 3).Value

End Sub

Private Sub 発注先コード_Change()

	発注先.Text = 発注先コード.List(発注先コード.ListIndex, 1)

End Sub

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 combobox=コードです。 
 textbox=発注先です。 

 ということですが

 発注先コード.List(発注先コード.ListIndex, 1)

 この 発注先コード というコントロールは何ですか?

(β) 2015/01/23(金) 11:43


β様

コード.List(コード.ListIndex, 1)です。
すみません。
(milky) 2015/01/23(金) 13:22


 エラーの原因そのものは、登録の中の コード.Text = ""  これで コード(ComboBox)に関するChangeイベントが連鎖発生して
 そのルーティンで ListIndexを指定してListにアクセスしようとしているところ、ListIndexがない(-1)なので
 エラーと、こういうことなので、イベント連鎖を回避する手立てが必要なんですが、それ以前に、
 ユーザーフォームのTextBoxやComboBoxのChangeイベントは、使うのが難しいというか、極論すれば
 ほとんど、使えないしろものです。
 操作としてはComboBoxのドロップダウンリストからの選択でしょうけど、仮に、生入力するとすれば
 それがリストにマッチしないものであった場合、たとえばxyzと入力すると、x で発生、、xy で発生、xyz で発生。
 しかも、このコードでは、最初の x で同じエラーになりますね。
 ListIndexはあくまでドロップダウンリストから 選ばれる、あるいは最初に入力した文字でリストのどこかとマッチして、それが選ばれた状態になります。
 リストとマッチしない場合は、ListIndexに値を持たないままChangeイベントに飛びます。

 たとえば、シートのChangeイベントに相当するユーザーフォームのComboBoxやTextBoxのイベントは
 BeforeUpdate,AfterUpdate 等の Exit系イベントです。

(β) 2015/01/23(金) 13:53


β様

お返事ありがとうございます。
難しいですね・・・
おっしゃっている事、何となく理解はできました。

Changeイベント以外で何か方法はありませんか?
(milky) 2015/01/23(金) 14:30


β様

AfterUpdateでできました!
ありがとうございました。
(milky) 2015/01/23(金) 16:21


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.