Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: Vba objektin lisäys

Sivun loppuun

pekkatee [05.03.2005 10:51:38]

#

Olen tekemässä exceliin apuohjelmaa vba:lla ja haluaisin lisätä textbox objekteja lomakkeeseen suorituksen aikana.
En tiedä onko se mahdollista, mutta haluaisin commanbuttonia klikkaamalla lisätä textboxeja lomakkeeseen "n" määrän.

Mitenkäs tuo tapahtuisi kaikkein näppärimmin?

sqwiik [05.03.2005 11:57:44]

#

Luo kontrollitaulukko, johon sitten lisäät objekteja Load-komennolla (poisto onnistuu UnLoad:lla).

pekkatee [05.03.2005 12:11:17]

#

Mitenköhän sitten tuo kontrollitaulukon luominen onnistuu?

tuomas [05.03.2005 12:58:10]

#

luo yksi kontrolli ja anna sille indeksi (0).
sitten voit ladata niitä Load kontrolli(numero)
tai vaikka silmukassa:

for i = 1 to 10
    load kontrollis_nimi(i)
next

edit: tulipas pistettyä tyhmä virhe :P

pekkatee [05.03.2005 13:29:46]

#

Kiitos vinkistä, mutta vba:ssa ei imeisesti ole ominaisuutta index? Vb 6:ssa tuo kyllä toimii.

Blaze [05.03.2005 13:57:41]

#

Eipä näköjään ole, UserFormin Controls-kollektionista sen sijaan näyttäisi löytyvän Add-metodi.

Me.Controls.Add "Forms.CommandButton.1", "muuli", True

Rinse&repeat.

pekkatee [06.03.2005 11:23:04]

#

Ratkaisin probleeman tälläisella koodilla. Mutta, mistä tiedän, miten uudet textboxit on nimetty? Vai voinko nimetä ne jotenkin itse?

Dim Txtbox1(0 To 10)
X = 30 'X changes the "top" property
For j = 0 To 10
Set Txtbox1(j) = Controls.Add("Forms.Textbox.1", , True) 'True = Visible
X = X + 20
Txtbox1(j).Width = 125
Txtbox1(j).Height = 15.75
Txtbox1(j).Top = X + 36
Txtbox1(j).Left = 24
Next j

Blaze [06.03.2005 12:15:34]

#

Boksin nimi määritellään tuossa Controls.Add -metodin toisessa parametrissa, tuossa esimerkissäni se tulisi olemaan "muuli".

pekkatee [07.03.2005 09:12:51]

#

Ymmärrän, mutta mitenkäs tuossa silmukkatapauksessa. Miten voin esim. commandbutton aliohjelmassa viitata kyseiseen textboxiin? Esim. textbox?.text="kokeilu".
Voi olla, että ratkaisu on yksinkertainen, mutta olen vasta aloittelija.

Blaze [07.03.2005 16:41:53]

#

No kun sulla kerran on nuo referenssit tallessa tuossa Txtbox1 -taulussa, niin voit tehdä TxtBox1(indeksi).Text = "Muuli"

Jos niitä ei ois, niin voisit ahkea halutun kontrollin Controls-kollektionin Item-metodilla, Controls.Item("munboksi").Text = "Muuli"


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta