Attribute VB_Name = "Module1" Public Sub TallennaTyokirja() 'Koodissa on alustettu tekstityyppinen muuttuja SvKohde (rivi 1). 'Tähän muuttujaan talletetaan tiedoston täydellinen (levyjako, kansiopolku, tiedosto ja pääte) tallennuskohde (rivi 2). 'SvKohde-muuttujan arvo alustetaan oletuskansiolle ja oletusnimelle. 'Dir-funktio etsii tiedostorakenteesta sille annettua parametria ja palauttaa tiedoston nimen, jos tiedosto löytyy. 'Jos tiedostoa ei löydy, se palauttaa tyhjän merkkijonon. 'Yllä olevassa koodissa Dir(SvKohde) palauttaa merkkijonon "SaveAs.xls", jos tiedosto on jo olemassa. 'Jos tiedostoa ei ole, Dir-funktion palauttamasta tyhjästä merkkijonosta tiedetään, että tallennus voidaan tehdä ilman vahvistuksia käyttäjältä. 'Jos tiedosto on jo olemassa, käyttäjältä pitää varmistaa päällekirjoitus. 'Tämä tehdään ehtolauseen Else-osassa MsgBox-komennolla rivillä 6. 'Jos käyttäjä vastaa kysymykseen myöntävästi, tiedosto tallennetaan oletusnimelle. 'Jotta tallennuksen yhteydessä ei enää kysyttäisi käyttäjältä tiedoston päällekirjoitusta, koodissa on komennettu hetkeksi varoitukset pois päältä (rivi 7). 'Tämä tarkoittaa sitä, että kaikki mahdolliset tallenukseen liittyvät vahvistukset käyttäjältä jätetään näyttämättä. 'Tässä koodissa on juuri aikaisemmin kysytty päällekirjoituksen vahvistusta, joten itse tallennuksessa vahvistusta ei enää tarvita. 'Aliohjelman lopussa pitää aina myös muistaa asettaa varoitukset takaisin päälle (tässä koodissa rivillä 9). 'Tämä on tärkeä huomio, sillä DisplayAlerts on Aplication-objektin ominaisuus, joten jos sen jättää pois päältä, se on pois päältä myös myöhemmin, esimerkiksi toimittaessa täysin toisen työkirjan kanssa. 'Jos käyttäjä ei hyväksy tiedoston päällekirjoitusta, tiedosto jää tallentamatta. 'Tässä tilanteessa käyttäjän pitää tallentaa työkirja itse. 'Lukija voi miettiä sellaisia ratkaisuja, joissa talletettavan tiedoston nimi haettaisiin esimerkiksi työkirjan nykyisestä nimestä johdettuna tai tietysta taulukon solusta. 'Tällöin käyttäjä pystyisi muuttamaan ehdotettua tallennusnimeä. 1 Dim SvKohde As String 2 SvKohde = Application.DefaultFilePath & "\SaveAs.xls" 3 If Dir(SvKohde) = "" Then 4 Application.ActiveWorkbook.SaveAs Filename:=SvKohde 5 Else 6 If MsgBox("Tiedosto " & SvKohde & " on jo olemassa. " & _ "Korvataanko tiedosto? ", vbYesNo) = vbYes Then 7 Application.DisplayAlerts = False 8 Application.ActiveWorkbook.SaveAs Filename:=SvKohde 9 Application.DisplayAlerts = True 10 End If 11 End If End Sub