|
▼247b さん:yukiさん、よろずやさん、ありがとうございます。
>Dim TBL(1 To 90) As Control と定義してあるのに 96 迄回している
すみません。手書きでしたので単なる誤記で、「1 to 96」です。
>
>>'////////////////////////// ココから新規追加(質問箱から盗用)
>>Private sub Combo社員ID_Change()
>>Application.screenupdating = False
>> With Me.Combo社員ID
>> if .ListIndex < then Exit Sub
>> Combo社員ID.value = .List(.ListIndex, 0)
>> Text氏名.value = .List(.ListIndex, 1)
>> Text所属.value = .List(.ListIndex, 2)
>> ・
>> ・
>> ・
>> Text標準報酬月額.value = .List(.ListIndex, 22)
>> Text市県民税.value = .List(.ListIndex, 23)
>>End With
>>set r = Noting
>>Application.screenupdating = True
>>End Sub
>
>エラーの内容と修正箇所から推測するに、上記のテキストボックスのValueプロパティへの値設定箇所のいずれかで問題が発生していることが考えられます。
この部分を含むCombo社員ID関連のコード部分に「’」をつけてコメント扱い(無効)にすると、いままでのどおりの動きをします。
>・考えられることとしては、Combo社員ID.Rowsourceに指定している範囲と、上記にある、.List(.ListIndex,23)のような記述で指定している範囲が合致しているかどうか再確認してください。
Combo社員ID.Rowsourceは、別bookの給与マスター(A列〜W列=23列、80行程度(毎月若干変動)のリスト)をrange("A1").currentregionでselectして、このbookのSheets("仮マスター").range("A1")にcopyして,Dim r as rangeとしています。
>ColumnCountプロパティに2を指定しているのに、Listプロパティで列を23まで指定しているのは合致しないように思うんですが。どうなんでしょう。
Combo社員IDには、「社員ID」と「氏名」の2列を表示して選択させるようにしています。その選択した行の各列の値をListプロパティで各textboxに代入しようとしています。
>・エラーメッセージが表示されたときに「デバッグ」ボタンを押して、どのステップで止まっているか確認してみてください。
TBL(Cnt) = vntData(1,Cnt) ←エラーメッセージのとき、ここが黄色に反転しています。
>全体的に無駄が多いです。
>そのため、ソースが異常に大きくなっているのでは。
>1つのモジュールに書けるコードの量には制限があります。
極力処理が重たくならない、処理速度も速くしたいと思っています。
具体的にどの部分、コードが、「無駄」なのかご教示願いますか?
切羽詰っています。何とかお助けを〜〜〜〜〜〜!!
comboboxからのListプロパティでの取得方法のほかに、よい方法はないでしょうか?
|
|