Visual Basic for ApplicationsA Visual Basic for Applications (VBA) az egyik megvalósítása a Microsoft esemény-vezérelt programnyelvének, a Visual Basic 6-nak – aminek 2008-ban szűnt meg a fejlesztése – és a hozzá tartozó integrált fejlesztőkörnyezetnek. Bár a Microsoft a Visual Basic támogatását és fejlesztését abbahagyta, a VBA programnyelv újabb verzióját hozták létre 2010-ben, így a Visual Basic for Applications 7 került a Microsoft Office alkalmazásokba. A Visual Basic for Applications lehetővé teszi felhasználó által definiált függvények létrehozását, folyamatok automatizálását, és a Windows API és más alacsonyabb szintű funkciók DLL-eken keresztüli elérését. Felváltja ill. kibővíti az alkalmazások korábbi saját makró-programozási nyelveinek funkcióit, mint pl. a Word WordBASIC-éit. A futtató alkalmazás sok funkcióját lehet vele vezérelni, többek között a felhasználói felület elemeit, mint a menük és eszköztárak, és tetszőleges űrlapokat és párbeszédpaneleket. Ahogy a neve is utal rá, a VBA közeli rokonságban van a Visual Basic-kel és a Visual Basic futásidejű könyvtárat használja. Viszont a VBA-kód alapvetően csak egy futtató alkalmazásban tud lefutni, önálló alkalmazásként nem. OLE automatizálással viszont vezérelhető egy applikáció egy másikból VBA-val. Például VBA-val automatikusan készíthetünk egy Microsoft Word riportot Microsoft Excel adatokból, amiket az Excel automatikusan gyűjt szenzorok folyamatos lekérdezésével. VBA-val használhatók, de nem készíthetők, ActiveX/COM DLL-ek, és későbbi verziók osztály modulokat is támogatnak. A VBA a legtöbb Microsoft Office alkalmazásban megtalálható, köztük az Office for Mac OS X-ben (a 2008-as verziót kivéve), továbbá más Microsoft alkalmazásokban is, mint a Microsoft MapPoint és a Microsoft Visio. A VBA-t, legalábbis részben, olyan applikációk is megvalósítják, amiket nem a Microsoft adott ki, mint az ArcGIS, az AutoCAD, a CorelDraw, a LibreOffice, a Reflection, a SolidWorks, és a WordPerfect. MegvalósításA VBA-ban írt programot Microsoft P-Code-ra (packed code [tömörített kód]), egy saját köztes nyelvre fordítják le a futtató alkalmazások (Access, Excel, Word, Outlook, PowerPoint stb.) és a dokumentum adatfolyamától külön adatfolyamban tárolják COM Strukturált Adattároló fájlokban (pl. AutomatizálásA futtató alkalmazással való kommunikáció OLE Automatizálással történik. Jellemzően a futtató alkalmazás biztosít egy típus-könyvtárat és alkalmazásprogramozási felület (application programming interface [API]) dokumentációt, ami leírja hogyan kommunikáljon a VBA az alkalmazással. A dokumentáció a VBA fejlesztőkörnyezetében az Objektum Keresővel (Object Browser) tekinthető meg. Egy VBA-program, ami egy adott alkalmazás OLE Automatizálás felületére lett írva, nem használható egy másik alkalmazás automatizálására, akkor sem, ha ez utóbbi biztosítja a Visual Basic futásidejű környezetét, mert az OLE Automatizálás felületeik különbözőek. Például, egy VBA-program, ami a Microsoft Word automatizálására lett írva, nem használható egy másik szövegszerkesztőben, akkor sem, ha ez utóbbiban lehet VBA-t futtatni. Ezzel ellentétben, több alkalmazás automatizálható a VBA-t futtató alkalmazásból Alkalmazás-objektumokkal. A különböző könyvtárakra hivatkozásokat VBA-ban a kliens alkalmazásban kell létrehozni, mielőtt bármilyen eljárás, objektum, stb. elérhetővé válna a futtató alkalmazásban. Ezt az úgynevezett korai vagy késői kötéssel oldhatjuk meg. Ezek az alkalmazás-objektumok hozzák létre az alkalmazásra való OLE-hivatkozást, amikor létrejönnek. Ezeknek az alkalmazásoknak explicit módon kell az alkalmazás-objektumokon keresztül utasításokat kiadni ahhoz, hogy megfelelően működjenek. Például, Microsoft Access-ben írt VBA-kód Excel, Word és Outlook könyvtárakra tud hivatkozni; így egy olyan alkalmazást lehet készíteni, ami futtat egy lekérdezést Access-ben, az eredményt Excel-be exportálja majd kiértékeli, végül Word-ben táblázatokká alakítja vagy elküldi e-mailben Outlookkal. A VBA-programok futtatása hozzáköthető nyomógombhoz, makróhoz, billentyűkombinációhoz, vagy OLE/COM eseményhez, például mikor az alkalmazás egy dokumentumot nyit meg. A nyelv Űrlapokat biztosít felhasználói felületek létrehozásához, amikhez különböző funkciókkal való bővítéshez AciveX vezérlők adhatók. Folyamatok közötti kommunikáció automatizálásához többek között használhatók a Dinamikus Adatcsere (Dynamic Data Exchange [DDE]) és a Valósidejű Adat (RealTimeData [RTD]), amik egy Komponens Objektum Modell (Component Object Model [COM]) automatizált kiszolgálótól kapnak dinamikus ill. valós idejű pénzügyi vagy tudományos adatokat. Biztonsági vonatkozásokMint bármelyik átlagos programozási nyelvben, így VBA-makrókban is lehet rosszindulatú kód. VBA használata esetén a biztonsági beállítások a felhasználó kezében vannak, nem a programozóéban. A VBA-t futtató alkalmazás beállításai elérhetőek a felhasználó számára. Bármilyen VBA-makrót tartalmazó dokumentumot futtató szoftverben előre megadhatók felhasználói beállítások. A végfelhasználók megvédhetik magukat egy támadástól az alkalmazásban a makrók futtatásának a letiltásával, vagy úgy, hogy VBA-kód futtatását csak a megbízható forrásból származó dokumentumoknál engedélyezik. Verziótörténet
Fejlesztés2007 július 1-től a Microsoft már nem licenszeli a VBA-t új vevőknek. A .NET Framework megjelenése óta a VBA mindenkori verziójához .NET-alapú nyelveket akartak adni, aminek az 1.0-ás és 1.1-es verzióiban egy Script for the .NET Framework nevű futásidejű szkript technológia volt elérhető. A Visual Studio .NET 2002 és 2003 SDK-kban egy külön szkript IDE volt, Visual Studio for Applications (VSA) néven, ami támogatta a VB.NET-et. Egyik legfontosabb funkciója az volt, hogy a technológiához csatlakozó felületet el lehetett érni Active Scripting-en keresztül (VBScript és JScript), így .NET-et nem ismerő alkalmazásokra is lehetett szkripteket írni .NET-es nyelvekkel. Viszont a VSA elavult státuszt kapott a .NET Framework 2.0-ás verziójában, nyitva hagyva a kérdést, hogy az Active Scripting-et használni szándékozó alkalmazásokat hogyan lehet így továbbfejleszteni (bár „szkriptelni” lehet C#-pal, VBScript-tel, és más .NET-es nyelvekkel, a fordítást és futtatást futásidőben a standard .NET futási környezettel telepített könyvtárak el tudják végezni). A Microsoft a Mac-re telepíthető Microsoft Office VBA-támogatását a 2008-as verzióval megszüntette, majd a 2011-es verzióval visszaállította. A Windows-ra telepíthető verzióból állításuk szerint nem áll szándékukban kivenni a VBA-t. Az Office 2010-es verziójával kiadták a VBA7-et, ami egy igazi mutató adattípussal bővült: a LongPtr-rel. Ezzel 64-bites címtérre is lehet hivatkozni. Az Office 2010 64-bites telepítése nem támogatja az MSComCtl (TabStrip, Toolbar, StatusBar, ProgressBar, TreeView, ListViews, ImageList, Slider, ImageComboBox) vagy a MSComCt2 (Animation, UpDown, MonthView, DateTimePicker, FlatScrollBar) közös vezérlőit, így 32-bitesről 64-bitesre történő váltásnál olyan VBA-kód, ami ezeket a vezérlőket használja, nem fog működni. Ez nem érinti az Office 2010 32-bites verzióját. A VBA7-ben nincsenek meg ezeknek a vezérlőknek a 64-bites verziói, a fejlesztők nem válthatnak 64-bitesre ilyen VBA-kódokat. A Microsoft a szoftver beszállítójának felkeresését ajánlja ilyen VBA-vezérlők 64-bites verziójának a beszerzéséhez. Fordítás
|
Portal di Ensiklopedia Dunia