Hei,
Olen aloitteleva VBA-ohjelmoija ja minulla on outo ongelma ListBoxien kanssa.
Olen tekemässä Excel-mallia, jossa käytetään yhteensä kahdeksaa ListBox-objektia. Näihin tallennetaan tietoja komentopainiketta klikkaamalla. Kaikki ListBoxit ovat ominaisuuksiltaan identtisiä ja sijaitsevat kahdella eri välilehdellä. Ensimmäisen välilehden ListBoxit toimivat täysin moitteettomasti, mutta toisella välilehdellä olevat käyttäytyvät oudosti.
Ongelma esiintyy ainoastaan kun avaa Excel-tiedoston ja ensimmäisen kerran tallentaa tiedot ListBoxeihin komentopainiketta klikkaamalla. Tällöin toisella välilehdellä olevien boxien leveys ja korkeus kasvaa automaattisesti muutamien senttien verran. Ongelma ei ratkea vaikka määritän leveyden ja korkeuden uudestaan halutulle tasolle, sillä ongelma toistuu aina tiedoston sulkemisen ja uudelleenavaamisen jälkeen.
Ongelman outoutta lisää se, että toisella välilehdellä sijaitsevien ListBoxien koko pysyy muuttumattomana vaikka niiden ominaisuudet ja tietojen syöttämistä varten kirjoitettu VBA-koodi on täysin identtinen ongelmaisten boxien kanssa.
Olisin kiitollinen ideoista ongelman ratkaisemiseksi :)
Olen itsekin joskus, kun vielä VBA:n parissa puuhastelin törmännyt samaiseen ongelmaan. Korjaamiseen tuskin on mitään ratkaisua, näin minä ainakin sanon.
laitappa koodisi niin katsotaan
edit
------------------
'testaappa ensin tätä: ' 'activex listboxilla on IntegralHeight parametri, vaihda se falseksi 'tämä tehdään joko koodilla: (vaihda tietenkin vastaamaan oman kontrollin nimeä) ListBox1.IntegralHeight = false 'tai vaihda parametri-ikkunan kautta
Moi VBNewbie!
Kokeiles nyt vielä semmosta, että nappaat sitä suunnittelutila nappia ja sit tsekkaat jokasen listboxin muotoiluasetuksista, että Ominaisuudet välilehdellä olevan radionappulan: Älä siirrä tai muuta kokoa solujen mukaan keskellä näkyy vihreetä...
Kiitoksia kaikille vastauksista! Ratkaisin jo ongelman ennen kuin lähetitte vastauksenne poistamalla ongelmaisen välilehden ja tekemällä sen uudestaan "from scratch". Ominaisuudet-välilehti oli kyllä kaikissa kunnossa, mutta IntegralHeightiä en testannut. Ratkaisuun olisi saattanut siis olla yksinkertaisempikin vaihtoehto :)
-VBNewvie
Aihe on jo aika vanha, joten et voi enää vastata siihen.