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. 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
      53
      4360
    2. 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
      82
      4049
    3. Jäikö meidän välit

      Mielestäsi Kesken?
      Ikävä
      70
      3518
    4. 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ä
      96
      3450
    5. Mitäs nyt sijoittajat?

      Pörssit laskevat maailmalla Iranin sodan takia ja muutenkin ovat olleet Trumpin vallan alla epävarmat. Ainoa, mikä on no
      Maailman menoa
      107
      2465
    6. Miks tän meidän

      Rakkauden on pitänyt olla näin vaikeaa?
      Ikävä
      35
      2318
    7. muista olla

      VAROVAINEN! m
      Ikävä
      24
      2199
    8. Elän vastoin

      Kaikkia arvoja kun en pysy sinusta erossa.
      Ikävä
      36
      2189
    9. Onneksi on edes yksi kuva

      Susta mitä voin välillä ihastella ja kaipailla sua😔
      Ikävä
      38
      2179
    10. Olisitpa se hellä

      Ja herkkä minkä kuvan sain sinusta irl. Haluaisin että elämässäni olisi sellainen joka arvostaa minua juuri sellaisena k
      Ikävä
      23
      2064
    Aihe