VBA->VB

Pasi

Terve,

olen tehnyt Excelillä pienen sovelluksen jonka ympärillä pyörii kolme Excel-tiedostoa. Ensimmäinen näistä olkoon vaikkapa Master.xls (jota kutsun myöhemmin ohjelmaksi), toinen Mallipohja.xlt ja kolmas Lomake.xls.

Ohjelma, eli Master.xls, sisältää pelkkää koodia ja taulukossa tiedon siitä mistä polusta Mallipohja.xlt löytyy ja mihin kansioon lomakkeet tallennetaan. Mitä ohjelmalla sitten tehdään, niin sillä luodaan lomakkeita joiden pohjaksi haetaan aina mallipohja. Mallipohja vain avataan, tallennetaan toisella nimellä tiettyyn kansioon, suljetaan mallipohja ja äsken tallennettu uusi tiedosto jätetään aktiiviseksi jolloin mallipohjasta syntyi siis uusi lomake.

Edellinen noin niin kuin "yleisesittelynä". Kysymykseni kuuluu seuraavasti: Koska "Ohjelma" sisältää lähes yksinomaan pelkkää koodia, niin voisiko "ohjelman" tehdä Visual Basicilla, eli voisiko siitä tehdä .exe:n? Muutenhan tämä onnistuisi kyllä, mutta voiko VB:llä viitata yhtä tehokkaasti esimerkiksi Excelin soluihin kuin VBA:lla (vaikkapa Range-komento)?

-Pasi-

7

762

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Excelisti

      Kyllä jos sinulla on VB. Teet vain VB ohjelmaan viittauksen Excelin objekti- (olio)- kirjastoon.

      Viitauksen jälkeen voit käsitellä kaikkia Excelin objekteja (olioita) aivan niinkuin VBA:ssa

      • Excelisti

        Tällä tavalla voit käyttä minkä tahansa ohjelman ja dll- tiedoston objekteja. Mutta kun ohjelmaa kutsutaan on Microsoft viisaudessaan havainnut parhaimmaksi että ohjelman kutsua ei näytetä missään. Pahimmassa tapauksessa ohjelman kehitystilanteessa voit ladata ko. ohjelman useita kertoja ja koneesi tukehtuu

        Tarkista Windowsin Tehtävienhallinnalla käynnissä olevat prosessit ja sulje turhat pois.

        Menikä tämä liian vaikeaksi? Yritän ensi viikolla selittää paremmin esimerkkien kanssa.


      • Pasi
        Excelisti kirjoitti:

        Tällä tavalla voit käyttä minkä tahansa ohjelman ja dll- tiedoston objekteja. Mutta kun ohjelmaa kutsutaan on Microsoft viisaudessaan havainnut parhaimmaksi että ohjelman kutsua ei näytetä missään. Pahimmassa tapauksessa ohjelman kehitystilanteessa voit ladata ko. ohjelman useita kertoja ja koneesi tukehtuu

        Tarkista Windowsin Tehtävienhallinnalla käynnissä olevat prosessit ja sulje turhat pois.

        Menikä tämä liian vaikeaksi? Yritän ensi viikolla selittää paremmin esimerkkien kanssa.

        Minulla ei ole VB:ia mutta ajattelin että josko sellaisen hankkisin. Luonnollisesti tieto siitä että VB:lla voi tehokkaasti käyttää Excelin taulukkoa edistää asiaa. Mielelläni kyllä lisätietojakin kaipaan.

        Kiitos näistäkin tiedoista

        -Pasi-


    • Kunde

      "olen tehnyt Excelillä pienen sovelluksen jonka ympärillä pyörii kolme Excel-tiedostoa."

      Miksi sotkea VB:tä kun voit tehdä saman ja paljon "kevyemmin" ja nopeammin Excelin VBA:lla.

      Miksi yleensä avata master.xls?

      Riittää kun avaat Lomake.xls ja tallentaessa tarkistat(BeforeSave tapahtuma), ettet ole tallentanut jo aikaisemmin samalla nimellä?
      Jokunen päivä foorumilla joku kyseli aikalailla samaa asiaa. Sama neuvo pätee siihenkin.

      • Pasi

        on satoja rivejä koodia, lomake täytetään UserFormien ja makrojen avulla ettei lomakkeeseen voisi vahingossakaan täyttää virheellistä tietoa, kaikki tarpeellinen tieto tulee täytettyä jne. Lomakkeen joitakin tiettyjä soluja klikkaamalla käynnistyy esimerkiksi makro (joka on muuten master.xls:ssä) ja joka toimii sen mukaan mitä solussa lukee jne.

        Lomaketta ei siis täytetä kuten Excel-taulukkoa vaan kyseessä on pienoinen ohjelma.


      • Kunde
        Pasi kirjoitti:

        on satoja rivejä koodia, lomake täytetään UserFormien ja makrojen avulla ettei lomakkeeseen voisi vahingossakaan täyttää virheellistä tietoa, kaikki tarpeellinen tieto tulee täytettyä jne. Lomakkeen joitakin tiettyjä soluja klikkaamalla käynnistyy esimerkiksi makro (joka on muuten master.xls:ssä) ja joka toimii sen mukaan mitä solussa lukee jne.

        Lomaketta ei siis täytetä kuten Excel-taulukkoa vaan kyseessä on pienoinen ohjelma.

        siltikään en ymmärrä, miksi Master.xls pitää käyttää. Voithan siirtää kaiken koodin Lomake.xls ja tehdä tarkistukset siellä...


      • Nimetön
        Kunde kirjoitti:

        siltikään en ymmärrä, miksi Master.xls pitää käyttää. Voithan siirtää kaiken koodin Lomake.xls ja tehdä tarkistukset siellä...

        Koodia on siis useita satoja rivejä, oikeasti useampi tuhat. "Ohjelman" tiedostokoko on 399 kt, kun taas lomakkeen koko on 52 kt jos siinä on yksi sivu ja 91 kt jos siinä on kaksi sivua jne. Lomakkeita on lähes tuhat ja joka vuosi niihin lisätään yksi välilehti lisää...

        Nyt ymmärtänet paremmin?

        -Pasi-


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Kelekkakisat

      Mikä vakava onnettomuus sattunut kisoissa. On peruttu koko kisat. Pelastuskopteri näytti käyvän paikalla.
      Nivala
      35
      11417
    2. Aivan kauheaa

      Veikö koskiuoma taas ihmishengen? Se pitää kieltää!
      Imatra
      63
      9810
    3. Onko kaivattusi

      …mielestäsi älykäs, tai kenties tyhmä? Oma mielipide.
      Ikävä
      144
      5559
    4. Kuinka pitkä välimatka

      on teidän kotien välillä?
      Ikävä
      144
      3784
    5. Epäilen ettet edes

      Kehtaisi liikkua kanssani.
      Ikävä
      75
      3740
    6. Virkamiehille tarvitaan tuntuvat palkankorotukset

      Naistenpäivänä on syytä muistuttaa, että virkamiehen euro on vain 80 senttiä. Palkat tulee saattaa samalle tasolle yksi
      Maailman menoa
      37
      3635
    7. Oletko huomannut

      Yhden muutoksen?
      Ikävä
      40
      3378
    8. Riikka Purran kaudella nousi bensan hinta yli 2 euron

      Muistatteko kuinka edellisen vasemmistohallituksen aikana, ns. Marinin aikakaudella, bensiiniä sai 1,3 euron litrahinnal
      Maailman menoa
      24
      3173
    9. Jäikö meidän välit

      Mielestäsi Kesken?
      Ikävä
      63
      2793
    10. Olisipa saanut sinuun

      Tutustua paremmin. Harmi että aloin lopulta jännittämään kun näytit tunteesi niin voimakkaasti ja lähestyit niin voimaak
      Ikävä
      79
      2583
    Aihe