複数ページのコントロールを使ってデータを収集するためのコードをVBAに作成しました。ボタンを押した後に動的テキストボックスを書き直す
入力ウィンドウ:
各ページでは、私は動的に各チェックボックスのためのExcelのワークシートや、からの行に基づいてチェックボックスを追加しました、ちょうど下の画像のように、テキストボックスと2つのコマンドボタンがあります自動的にコントロールを追加するためのコードは次のとおりです。
Private Sub UserForm_Initialize()
fmat_disp.Value = 0
fmat_set.Value = 0
'---------------------------------------------------------------------------------------------
'Inspeção de Mecânica
Sheets("Mecânica").Activate
n_anom = Application.WorksheetFunction.CountA(Range("1:1")) - 1
AreasInspecao.mecanica.ScrollHeight = 10 + 18 * (n_anom)
For i = 1 To n_anom
'Selecionar anomalia
Set SelAnom = AreasInspecao.mecanica.Controls.Add("Forms.CheckBox.1", "sel_anom_" & i)
SelAnom.Caption = Worksheets("Mecânica").Cells(1, i + 1)
SelAnom.AutoSize = True
SelAnom.Height = 18
SelAnom.Left = 5
SelAnom.Top = 5 + (SelAnom.Height) * (i - 1)
SelAnom.Tag = i
同じだけのキャプションを変更し、テキストボックスとプラス/マイナスボタンになります。
私は何をしたいことは次のとおりです。 1)チェックボックスがチェックされたときに、それぞれのテキストボックス1 2を示さなければならない)マイナス記号を押したときに、それぞれのTEXTBOXは 3をデクリメントしなければなりませんが)プラス記号を押したときに、それぞれのTEXTBOXは 4をインクリメントする必要があります)「FinalizarInspeção」が押されている場合は、集められたすべてのデータをExcelに送ってワークシートに記入する必要があります。
それぞれのボタン/チェックボックスをそれぞれのテキストボックスにリンクする方法は分かりませんが、それぞれのサブルーチンを作成する必要はありません。私は約500のサブルーチンを持っています....それは手動では管理することが不可能です....
イメージはありますか? –
申し訳ありません... imgurl画像へのリンクが追加されました! –
あなたが動的にコントロールを追加している場合、あなたはこのような何かが必要です。http://www.siddharthrout.com/2011/08/05/vba-control-arrays/それはイベントをキャプチャする方法を示します:あなたがする必要があるすべてをdoは、関連するコントロールのグループをトリガーされたコードで識別できるように、コントロールに名前を付けます。 –