[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ohjelmistot] Muutamia hyödyllisiä makroja :)
Päivämäärän kysymisessä ongelmia?
---------------------------------
Päivämäärän kysyminen inputboxilla voi aiheuttaa ongelmia
päivämäärämuotoiluissa. Seuraavassa kuitenkin ratkaisu, jonka avulla
päivämäärän kysymisessä ei pitäisi tulla ongelmia.
Sub kysy_paiva()
Dim paiva As Date 'Alustetaan paiva-muuttuja päivämääräksi
paiva = InputBox("Anna päivä") ' Kysytään päivä
ActiveCell.Value = paiva ' Liitetään päivä aktiiviseen soluun
End Sub
InputBoxin Cancel-painikkeen painaminen aiheuttaa virheen.
---------------------------------
InputBoxissa Cancel-painikkeen painamisesta voi seurata virheellinen
toiminta. Esimerkiksi rivin poistamisen yhteydessä tuloksena voi olla
aktiivisen rivin tai solualueen häviäminen. Seuraavassa lyhyt esimerkki,
jonka avulla voi itse testata InputBoxin toimintaa. Tuollaisen tempun
käyttö ei kuitenkaan ole pakollista harjoitustyössä.
Sub Cancel()
testi = InputBox("Anna arvo tai paina Cancel-painiketta")
If (testi <> "") Then
testi2 = MsgBox(testi)
Else
testi2 = MsgBox("Ei arvoja")
End If
End Sub
Kaavion sarjojen päivittäminen
-------------------------------
Kaavio ei päivity automaattisesti, jos data-alueelle tulee lisää sarjoja.
Esimerkiksi jokaisen opiskelijoiden muodostaessa oman sarjansa
opiskelijoiden lisääminen ei vaikuta ollenkaan kaavioon.
Kaaviolle voi antaa data-alueen nimettynä solualueena, mutta silti ongelma
ei poistu. Kaavionäet muuttaa nimetyn solualueen soluviittaukseksi.
Ongelman saa poistumaan tekemällä kaavion päivitysmakron. Makron tekeminen
onnistuu nauhoittamalla kaavion data-alueen päivittäminen. Data-alueen
päivittäminen voidaan tehdä napauttamalla hiiren oikealla kaaviota ja
valitsemalla <samp>Source Data</samp>-kohdan. Kohdan alta voi valita uuden
data-alueen. Data-alueena kannattaa käyttää nimettyä aluetta, mutta
nimetty alue joudutaan lisäämään erikseen makroon. Esimerkin tapauksessa
makro on nauhoitettu ja makroon on lisätty ainoastaan nimetyn alueen nimi
JUTTU alkuperäisen soluviittauksen paikalle. Makroa kannattaa käyttää
osana lisää opiskelija makroa.
Sub paivita_kaavio()
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.Select
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("JUTTU"), _
PlotBy:=xlRows
End Sub
Mukavia hetkiä makrojen parissa :)
--
Petri Heinonen <URL: http://www.mit.jyu.fi/peheinon/>
Jyväskylän yliopisto/Tietotekniikan laitos peheinon@mit.jyu.fi
PL 35 (Agora C431.2) Puh. +358 14 260 2746
40351 Jyväskylä Fax. +358 14 260 2731
-- send "unsubscribe ohjelmistot" to majordomo@cc.jyu.fi to unsubscribe ---