各テキストボックスの変更に対していくつかのlable値を更新しようとしました。 ウェブサイトでthis linkとthis linkが検索されましたが、引き続き問題が発生しました。私は「クラス」がどのように機能するのか分かりません。 "QuoTxtBoxEvt" という名前のクラスでUserform - 複数のテキストボックスのイベント変更
コード:ユーザーフォームで
Option Explicit
Private WithEvents TxtBoxGroup As MSForms.textbox
Public Sub TxtBoxGroup_Change()
With frmQuo
.TextBox28.value = Val(.TextBox8.value) * Val(.TextBox9.value)
.TextBox28.value = Val(.TextBox28.value) + (Val(.TextBox11.value) * Val(.TextBox12.value))
.TextBox28.value = Val(.TextBox28.value) + (Val(.TextBox14.value) * Val(.TextBox15.value))
.TextBox28.value = Val(.TextBox28.value) + (Val(.TextBox17.value) * Val(.TextBox18.value))
.TextBox28.value = Val(.TextBox28.value) + (Val(.TextBox20.value) * Val(.TextBox21.value))
.TextBox28.value = Val(.TextBox28.value) + (Val(.TextBox23.value) * Val(.TextBox23.value))
If .CheckBox1 = True Then .TextBox28.value = Val(.TextBox28.value) * (100 - Val(.TextBox26.value))/100
If .CheckBox2 = True Then .TextBox28.value = Val(.TextBox28.value) + (Val(.TextBox28.value) * Val(.TextBox27.value)/100)
End With
End Sub
コード:
Private Sub UserForm_Initialize()
'Variables for textbox change event handler
Dim TxtBoxGroupEventHandler() As New QuoTxtBoxEvt
Dim vfrmControl As Control
Dim i As Integer
'Event handler for textbox change to update total cost
i = 1
For Each vfrmControl In Me.Controls
If TypeName(vfrmControl) = "TextBox" Then
ReDim Preserve TxtBoxGroupEventHandler(1 To i)
Set TxtBoxGroupEventHandler(i).TxtBoxGroup = vfrmControl
i = 1 + i
End If
Next vfrmControl
End Sub
これらの私のコード今のところ、それはエラーを返します。私のコードで何が間違っていますか?誰かが簡単に "クラス"をコードする方法を教えてもらえますか?多くの
はORZ編集に感謝: 私は私のことで値を更新し、各テキストボックスの変更イベントでそのサブを呼び出すサブを作成し、これを達成するための別の方法を得ました。しかし、これを行うには、この最良の方法(正しい方法ですか?)ですか?またはクラスメソッドを使用する方が良いですか?
質問:ユーザーがボタンを追加すると、ユーザーがそれをクリックすると、それらに関連する 'TextBoxes'に従ってすべての値に値が更新されます。あなたのコードを簡単にするでしょうか? 'TextBoxes'の変更のたびにそれを持っていなければならない場合 –
回答:私の上司はボタンT^Tを好きではありません。 – KokJoo89