VBA - dynamické přidávání ovládacích prvků do Userform

Abychom vytvořili podporu pro toto demo, použili jsme příklad kalkulačky, ale tentokrát jsme dynamicky vytvořili všechny ovládací prvky.

Rozbalit všechny záložky Minimalizovat všechny záložky Příznaky Při vytváření ovládacích prvků dynamicky v Userform Excel nerozpozná názvy ovládacích prvků. To znamená, že události generované ovládacími prvky a jejich vlastnosti nebudou přístupné prostřednictvím přiřazených jmen. Když například vytvoříte tlačítko s následujícím kódem:

Nastavit Bouton = Me.Controls.Add ("Forms.CommandButton.1", "Bt" & i, pravda)

Název tlačítka bude (v případě, že i = 1) BT1

Událost Private Sub BT1_Click () však nikdy nebude generována. K řešení tohoto problému jste použili kolekce objektů pro vlastnosti a kolekce tříd pro události. Kolekce objektů neobsahují pouze ovládací prvek, ale také klíč k jeho odkazu. Konfigurací vlastnosti Tag ovládacích prvků s požadovaným indexem může kolekce třídy vrátit index, který také umožňuje vědět, který ovládací prvek byl předmětem této události.

V návrhu UserForm není žádný ovládací prvek. Všechny ovládací prvky jsou dynamicky vytvořeny kalkulačkou, včetně kontejneru rámců. Demo také umožňuje začlenit tlačítka do rámců

Stažení:

Server 1: Přidat ovládací prvek UserForm.xls

Předchozí Článek Následující Článek

Nejlepší Tipy