Kirjautuminen

Tunnus
Salasana

Haku

Tehtävät

Opasarkisto: Visual Basic -opas: Osa 1 - Johdanto

  1. Osa 1 - Johdanto
  2. Osa 2 - Käyttöliittymä
  3. Osa 3 - Muuttujat ja taulukot
  4. Osa 4 - Ehdot ja silmukat
  5. Osa 5 - Aliohjelmat ja funktiot
  6. Osa 6 - Hiiri ja näppäimistö
  7. Osa 7 - VB:n grafiikkakomennot
  8. Osa 8 - Tiedostot
  9. Osa 9 - WinAPIn käyttö

Kirjoittaja: Antti Laaksonen

Tämä opassarja ilmestyi ensimmäisen kerran kesällä 2002, mutta se on sen jälkeen kokenut monia uudistuksia, joiden ansiosta oppaat ovat nyt sekä aikaisempaa laajempia että selkeämpiä. Tärkein syy näiden oppaiden kirjoittamiseen on se, että kunnollisia, suomenkielisiä Visual Basic -ohjelmointiin liittyviä kirjoja on olemassa varsin vähän. Monet kirjat ovat jo vanhentuneita, toiset taas huonoja käännöksiä englannin kielestä. Tästä opassarjasta lienee apua Visual Basicin opiskeluun niin kotona kuin koulussakin.

Mikä on Visual Basic?

Kun Microsoft julkaisi vuonna 1991 Visual Basicin ensimmäisen version, se oli merkittävä helpotus vaikeana pidettyyn Windows-ohjelmointiin: aloittelijakin pystyi sen avulla luomaan toimivia ja tyylikkäitä ohjelmia. Uusien versioiden mukana Visual Basiciin on tullut monia parannuksia, ja se soveltuu laajojenkin ohjelmien tekemiseen. Enää Basic ei ole pelkästään aloittelijoille tarkoitettu harjoitteluohjelmointikieli, josta täytyy siirtyä pois taitojen kehittyessä.

Tässä opassarjassa käytetään Visual Basicin versiota 6.0. Melkein kaikki esimerkit toimivat kuitenkin suoraan tai pienin muutoksin vanhemmilla versioilla. Sen sijaan VB.NETin opetteluun opassarja ei sovellu, koska kieli poikkeaa monilta osin Visual Basicin aiemmista versioista. Mielestäni VB.NETiin siirtymiseen ei ainakaan toistaiseksi ole syytä, vaan tavallinen Visual Basic riittää melkein kaikkiin tarkoituksiin paremmin kuin hyvin. Etuna VB.NETiin verrattuna on ohjelmien toimiminen vanhoissa käyttöjärjestelmissä.

Ohjelmointiympäristö

Seuraavassa kuvassa on Visual Basicin ohjelmointiympäristö perustilassa:

Jokainen ohjelma on erillinen projekti, johon voi liittyä useita tiedostoja. Projektiin kuuluvat tiedostot näkyvät oikeassa yläkulmassa olevassa listassa. Tavallisin projektin osana oleva tiedosto on lomake (form), joka vastaa yhtä ohjelmaan kuuluvaa ikkunaa. Se sisältää ikkunassa näkyvät painonapit, tekstikentät, vierityspalkit ja muut ohjaimet (controls). Tämän lisäksi lomakkeeseen kuuluu melkein aina ikkunaan liittyvää ohjelmakoodia. Kuvassa keskellä on muokkaustilassa oleva lomake sekä sen alapuolella koodi-ikkuna.

Vasemman reunan työkalupalkissa on lomakkeelle lisättävät ohjaimet. Ohjain yksinkertaisesti piirretään lomakkeelle, minkä jälkeen sen sijaintia, kokoa ja ominaisuuksia (properties) pystyy muuttamaan. Ominaisuuksien muuttaminen tapahtuu ikkunan oikeassa laidassa olevan ominaisuuslistan avulla. Esimerkiksi komentopainikkeen ominaisuus Caption määrittää painikkeessa näkyvän tekstin. Myös lomakkeella on ominaisuuksia, joiden muuttaminen tapahtuu samalla tavalla.

Ominaisuuksien lisäksi ohjaimiin ja lomakkeeseen liittyy tapahtumia (events) ja toimintoja (methods). Esimerkkinä komentopainikkeessa Click-tapahtumassa oleva koodi suoritetaan silloin, kun käyttäjä painaa nappulasta. Yksi painonappiin liittyvistä toiminnoista taas on SetFocus, joka aiheuttaa nappulan aktivoitumisen. Silloin muun muassa käyttäjän näppäinpainallukset ohjautuvat siihen. Ohjainten tapahtumat ohjaavat koko ohjelman suoritusta; näistä asioista tuleekin lisää tietoa oppassarjan seuraavassa osassa.

Tavallinen ohjelma

Nyt teemme pari yksinkertaista ohjelmaa. Lisää lomakkeelle ohjeteksti (Label), tekstikenttä (TextBox) ja painonappi (CommandButton). Ohjainten oletusnimet ovat Label1, Text1 ja Command1 – ne saavat nyt kelvata. Kirjoita ohjetekstin Caption-ominaisuudeksi "Kirjoita nimesi:", tyhjennä tekstikentän Text-ominaisuus ja muuta vielä painonapin Caption-arvoksi "Paina!". Lopputuloksen pitäisi olla suurinpiirtein seuraavan kuvan kaltainen:

Klikkaa sitten kahdesti lomakkeella olevaa nappia, jolloin koodi-ikkuna tulee esiin. Ikkunassa näkyy valmiiksi kirjoitettu koodi, joka on Command1-ohjaimen Click-tapahtuman pohja. Tämä koodi suoritetaan aina silloin, kun käyttäjä painaa nappia. Muuta koodia seuraavasti:

' tähän tullaan silloin, kun käyttäjä painaa Command1-nappia
Private Sub Command1_Click()
    MsgBox "Terve, " & Text1.Text
End Sub

Heittomerkillä alkavat rivit ovat ohjelmoijan omia kommentteja, jotka eivät vaikuta ohjelman suoritukseen. Nyt on ohjelman koeajon aika. Paina F5-näppäintä (tai nappularivistä oikealle osoittava nuolta tai Run-valikosta Start-kohtaa), jolloin ohjelma käynnistyy ja äsken tekemäsi ikkuna tulee näytölle. Kirjoita nimesi tekstikenttään ja paina nappia. Silloin näkyviin tulee pieni viesti-ikkuna, jossa on tervehdys ja kirjoittamasi nimi. Kun suljet ohjelman, palataan jälleen ohjelmointitilaan.

Näkymätön ohjelma

Seuraava ohjelma on hieman toisenlainen, sillä siinä ei ole lainkaan lomaketta eikä siis ikkunaa. Klikkaa lomakkeen nimestä projektilistalla, ja valitse sitten Project-valikosta Remove Form1. Nyt projektissa ei ole yhtään tiedostoa, mikä ei kuitenkaan käy päinsä. Lisää sen vuoksi moduuli (module) saman valikon kohdasta Add Module. Moduulissa voi olla ohjelman yhteisiä osia, joiden käyttäminen on mahdollista kaikista lomakkeista. Lisäksi on mahdollista tehdä näkymätön ohjelma, joka on kokonaan moduulissa. Näin me teemme nyt.

Kirjoita moduuliin seuraava koodi:

' tähän tullaan heti ohjelman käynnistyessä
Sub Main()
    MsgBox "Tässä ohjelmassa ei ole lainkaan ikkunaa!"
End Sub

Paina sitten F5, jolloin näkyviin tulee viesti-ikkuna. Heti sen jälkeen ohjelma sulkeutuu. Ohjelman suoritus alkaa automaattisesti moduulissa olevasta Main-osasta, koska projektissa ei ole mitään muita tiedostoja. Jos kuitenkin projektissa on muita tiedostoja, moduulialoitus täytyy erikseen valita Project-valikon alimmasta Properties-kohdasta. Ohjelman aloittava lomake tai moduuli valitaan Startup Object -listasta.

Ohjelman kääntäminen

Ohjelman kääntäminen tarkoittaa, että siitä tehdään itsenäinen, ajettava exe-tiedosto, jota voi käyttää toisella koneella ilman Visual Basicia. Ohjelma käännetään valitsemalla File-valikosta kohta Make [nimi].exe. Ennen kääntämistä pääsee vielä vaikuttamaan ohjelman tietoihin ja käännökseen liittyviin asetuksiin painamalla tallennusikkunassa Options-nappia.

Jokainen Visual Basicilla tehty ohjelma vaatii toimiakseen koneelle asennetun ajonaikaisen kirjaston. Tiedoston nimi riippuu Visual Basicin versiosta, esimerkiksi kuutosversiolla tehty ohjelma ei toimi ilman MSVBVM60.DLL-tiedostoa. Ajonaikaisen kirjaston koko on sen verran suuri, ettei sitä yleensä kannata laittaa Internetistä ladattavan ohjelman mukaan. Sen sijaan kannattaa ilmoittaa osoite, josta kirjaston voi kopioida, jos käyttäjällä ei ole sitä valmiiksi koneellaan.

Tiedostojen päätteitä

Seuraavassa taulukossa on tavallisia Visual Basicin tiedostopäätteitä:

pääteselitys
vbpprojektitiedosto, joka sisältää kaikkien muiden projektiin kuuluvien tiedostojen nimet
frmikkunaa vastaava lomake, jossa on ohjaimet ja niihin liittyvät ominaisuudet sekä koodi
frxsisältää lomakkeeseen liitetyn grafiikan (tästä ei tarvitse huolehtia itse)
basmoduuli, jossa on yleisiä ohjelman osia; voi myös olla itsenäinen ohjelma
clsluokka, joka vastaa pääosin moduulia, mutta on olio-ohjelmointia

Tiedostot tallennetaan tavallisessa tekstimuodossa, minkä ansiosta niitä pystyy muokkaamaan millä tahansa tekstieditorilla.


Kommentit

Koipio-ohjelma [10.08.2004 17:37:49]

Lainaa #

Oho kenelläkään ei oel ollut kommentteja :D Kaikki taisikin tulla selväksi :D

edit:no voi juma ei tullukaan niin selväks kääntämisen yhteydessä sanoo että object required debugin mukann se on tuolla msgbox rivillä

Meiju [29.10.2004 08:46:55]

Lainaa #

Aivan loistava sivu! :)

jeims [17.12.2004 16:12:24]

Lainaa #

Siis mä oon ihan pihalla. Millä noita ees tehää? (olen tyhmä, juu)

Samu8 [10.11.2011 21:41:29]

Lainaa #

mist saan ohjelman. haluun sit ohjelman netist

dxw [14.01.2012 23:42:36]

Lainaa #

oon vähän pihalla mitä noila moduuleila tehään
mut si pitää homata enään visual basic :D

Uumas [27.02.2014 16:10:05]

Lainaa #

Kirjoita kommentti

Huomio! Kommentoi tässä ainoastaan tämän oppaan hyviä ja huonoja puolia. Älä kirjoita muita kysymyksiä tähän. Jos koodisi ei toimi tai tarvitset muuten vain apua ohjelmoinnissa, lähetä viesti keskusteluun.

Muista lukea keskustelun ohjeet.
Tietoa sivustosta