Uygulamalar için Visual Basic - Visual Basic for Applications

Uygulamalar için Visual Basic
ParadigmaÇoklu paradigma
GeliştiriciMicrosoft
İlk ortaya çıktı1993; 27 yıl önce (1993)
Kararlı sürüm
7.1 (Ofis 2019 )
Yazma disipliniStatik / Dinamik Hibrit, Güçlü / Zayıf Hibrit
işletim sistemiMicrosoft Windows, Mac OS X
LisansTicari tescilli yazılım
Tarafından etkilenmiş
QuickBASIC, Visual Basic

Uygulamalar için Visual Basic (VBA) bir uygulamasıdır Microsoft 's olay odaklı programlama dil Visual Basic 6, 2008'de miras olduğu ilan edildi ve ilişkili entegre geliştirme ortamı (IDE). NET Visual Basic artık Microsoft tarafından desteklenmiyor veya güncellenmiyor olsa da, VBA programlama dili 2010 yılında Microsoft Office uygulamalarında Visual Basic for Applications 7'nin tanıtılmasıyla yükseltildi.[1] 2020 itibariyle VBA, geliştiriciler için "en korkulan" dil konumunu 2 yıldır koruyor. (2018 için en korkulan dil Visual Basic 6 idi).[2]

Visual Basic for Applications, kullanıcı tanımlı işlevler (UDF'ler), süreçleri otomatikleştirme ve erişim Windows API ve diğer düşük düzeyli işlevler aracılığıyla dinamik bağlantı kitaplıkları (DLL'ler). Daha önceki uygulamaya özgü becerilerin yerini alır ve bunları genişletir. makro gibi programlama dilleri Kelimeler WordBASIC. Menüler ve araç çubukları gibi kullanıcı arabirimi özelliklerinin değiştirilmesi ve özel kullanıcı formları veya iletişim kutuları ile çalışma dahil olmak üzere ana uygulamanın birçok yönünü kontrol etmek için kullanılabilir.

Adından da anlaşılacağı gibi, VBA, Visual Basic ile yakından ilgilidir ve Visual Basic Çalışma Zamanı Kitaplığı'nı kullanır. Ancak, VBA kodu normalde yalnızca bir ana bilgisayar uygulamasında çalışabilir, bir bağımsız program. Ancak VBA, bir uygulamayı diğerinden kontrol edebilir. OLE Otomasyonu. Örneğin, VBA otomatik olarak bir Microsoft Word -den rapor Microsoft Excel Excel'in sorgulamalı sensörlerden otomatik olarak topladığı veriler. VBA kullanabilir ancak oluşturamaz ActiveX / COM DLL'ler ve sonraki sürümler, sınıf modülleri için destek ekler.

VBA çoğu Microsoft Office Mac OS X için Office (2008 sürümü hariç) ve diğer Microsoft uygulamaları dahil olmak üzere uygulamalar Microsoft MapPoint ve Microsoft Visio. VBA ayrıca Microsoft dışındaki şirketler tarafından yayınlanan uygulamalarda en azından kısmen uygulanır. ArcGIS, AutoCAD, Corel çizgisi, LibreOffice, Yansıma,[3] SolidWorks,[4] WordPerfect ve UNICOM sistem mimarı (VBA 7.1'i destekler).

Tasarım

VBA'da yazılan kod derlenmiş[5] -e Microsoft P Kodu (sözde kod), tescilli ara dil, hangi ana bilgisayar uygulamaları (Giriş, Excel, Kelime, Görünüm, ve Priz ) ayrı olarak saklayın Akış içinde COM Yapısal Depolama dosyalar (ör. .doc veya .xls) belge akışlarından bağımsız. Ara kod daha sonra çalıştırılır[5] tarafından sanal makine (ana bilgisayar uygulaması tarafından barındırılır). Birçok eskiye benzemesine rağmen TEMEL lehçeler (özellikle Microsoft BASIC, dolaylı olarak türetildiği), VBA bunlardan herhangi biri ile uyumlu değildir. Visual Basic, VBA modüllerinin ve sınıflarının kaynak kodunun doğrudan içe aktarılabildiği ve aynı kitaplığı ve sanal makineyi paylaşan. Uyumluluk, Visual Basic sürüm 6 ile sona erer; VBA ile uyumlu değil Visual Basic .NET (VB.NET). VBA, Microsoft'a özeldir ve COM arabirimi dışında bir açık standart.

Otomasyon

Ana uygulama kullanımlarıyla etkileşim OLE Otomasyonu. Tipik olarak, ana bilgisayar uygulaması bir tip kütüphane ve uygulama programlama Arayüzü VBA programlarının uygulamayla nasıl etkileşime girebileceğini belgeleyen (API) belgeleri. Bu belgeler, VBA geliştirme ortamının içinden Nesne Tarayıcısı kullanılarak incelenebilir.

OLE Otomasyon arabirimleri farklı olacağından, bir uygulamanın OLE Otomasyon arabirimini kullanmak üzere yazılan Visual Basic for Applications programları, farklı bir uygulamayı otomatikleştirmek için kullanılamaz, bu uygulama Visual Basic çalışma zamanını barındırsa bile, OLE Otomasyon arabirimleri farklı olacaktır. Örneğin, Microsoft Word'ü otomatikleştirmek için yazılmış bir VBA programı, bu kelime işlemci VBA barındırsa bile farklı bir kelime işlemciyle kullanılamaz.

Tersine, VBA kodu içinde Uygulama nesneleri oluşturarak birden çok uygulama tek bir ana bilgisayardan otomatikleştirilebilir. Farklı kitaplıklara referanslar, herhangi bir yöntem, nesne vb. Uygulamada kullanılabilir hale gelmeden önce VBA istemcisinde oluşturulmalıdır. Bu, Erken veya Geç Bağlama olarak adlandırılan yöntemle elde edilir. Bu uygulama nesneleri, ilk oluşturulduklarında uygulamaya giden OLE bağlantısını oluşturur. Doğru çalışması için farklı uygulamalara komutlar bu uygulama nesneleri aracılığıyla açıkça yapılmalıdır.

Örnek olarak, Microsoft Access'te yazılan VBA kodu Excel, Word ve Outlook kitaplıklarına referanslar oluşturabilir; bu, örneğin Access'te bir sorgu çalıştıran, sonuçları Excel'e aktaran ve analiz eden ve ardından çıktıyı bir Word belgesindeki tablolar olarak biçimlendiren veya bunları bir Outlook e-postası olarak gönderen bir uygulama oluşturmaya olanak tanır.

VBA programları bir menü düğmesine eklenebilir, makro, bir klavye kısayolu veya uygulamadaki bir belgenin açılması gibi bir OLE / COM olayı. Dil, barındırabilen UserForms biçiminde bir kullanıcı arabirimi sağlar ActiveX ek işlevsellik için kontroller.

Arası iletişim otomasyon şunları içerir: Dinamik Veri Değişimi (DDE) ve Gerçek zamanlı veri (RTD) bir Bileşen Nesne Modeli Dinamik veya gerçek zamanlı finansal veya bilimsel veriler için (COM) otomasyon sunucusu.[6]

Güvenlik endişeleri

Herhangi bir yaygın programlama dilinde olduğu gibi, VBA makroları kötü niyetle oluşturulabilir. VBA kullanarak, çoğu güvenlik özellikler yazarın değil kullanıcının elindedir. VBA ana bilgisayar uygulaması seçeneklerine kullanıcı tarafından erişilebilir. VBA makroları içeren herhangi bir belgeyi çalıştıran kullanıcı, yazılımı kullanıcı tercihleriyle önceden ayarlayabilir. Son kullanıcılar makroların bir uygulamada çalışmasını devre dışı bırakarak veya yalnızca belgenin kaynağına güvenilebileceğinden eminlerse bir belgeye VBA kodunu çalıştırma izni vererek kendilerini saldırılardan koruyabilirler.

Sürüm geçmişi

  • VBA, ilk olarak 1993 yılında MS Excel 5.0 ile piyasaya sürüldü. Geliştiriciler arasında Excel kullanarak kurumsal çözümler oluşturmak anında bir başarı haline geldi. VBA'nın AccessBASIC'in yerine Microsoft Project, Access ve Word ile dahil edilmesi ve WordBASIC sırasıyla daha popüler hale getirdi.
  • VBA 4.0, bir öncekine kıyasla tamamen yükseltilmiş bir sürümü olan bir sonraki ünlü sürümdür. 1996'da piyasaya sürüldü, C ++ ile yazıldı ve nesne yönelimli bir dil haline geldi.
  • VBA 5.0, tüm MS Office 97 ürünleriyle birlikte 1997 yılında piyasaya sürüldü. Bunun tek istisnası, kullanılan Outlook 97 idi. VBScript.
  • VBA 6.0 ve VBA 6.1, özellikle Office 2000'deki COM eklentileri desteğiyle 1999'da piyasaya sürüldü. VBA 6.2, Office 2000 SR-1 ile birlikte piyasaya sürüldü.
  • VBA 6.3, Office XP'den sonra piyasaya sürüldü, VBA 6.4 Office 2003'ü izledi ve VBA 6.5, Office 2007 ile birlikte piyasaya sürüldü.
  • Office 2010, VBA 7.0'ı içerir. 64 bit desteği dışında, VBA 6.5'e kıyasla geliştiriciler için VBA 7'de yeni özellik yoktur. Ancak, VBA 6.5 / Office 2007'den sonra Microsoft, diğer uygulamalar için VBA lisansını durdurdu.
  • Office 2013, Office 2016 ve Office 2019, VBA 7.1'i içerir.
  • JavaScript API değişimi: Microsoft, VBA'dan Office için JavaScript API'yi tercih ediyor (bu nedenle, Web'de Office ve Mac için Office için de).[kaynak belirtilmeli ]

Geliştirme

1 Temmuz 2007 itibariyle, Microsoft artık yeni müşterilere VBA dağıtım lisansları sunmamaktadır. Microsoft, şu anki sürümüne .NET tabanlı diller eklemeyi amaçlamaktadır. .NET Framework,[7] 1.0 ve 1.1 sürümlerinde, adında bir komut dosyası çalıştırma zamanı teknolojisi bulunur .NET Framework için Komut Dosyası.[8] Visual Studio .NET 2002 ve 2003 SDK, adı verilen ayrı bir komut dosyası IDE'si içeriyordu Uygulamalar için Visual Studio (VSA), VB.NET'i destekleyen.[9][10][11] Önemli özelliklerinden biri, teknolojiye yönelik arayüzlerin, Aktif Komut Dosyası (VBScript ve JScript ), .NET'in farkında olmayan uygulamaların bile .NET dilleri aracılığıyla komut dosyası yazılmasına izin verir. Ancak, VSA, .NET Framework 2.0 sürümünde kullanımdan kaldırılmıştır.[11] Active Komut Dizileri desteği isteyen uygulamalar için net bir yükseltme yolu bırakmadan ("komut dosyaları" C #, VBScript ve diğer .NET dilleri derlenmiş ve aracılığıyla çalışma zamanında yürütülür kütüphaneler standart .NET çalışma zamanının bir parçası olarak kurulur).

Microsoft, VBA desteğini düşürdü Mac için Microsoft Office 2008.[12][13] VBA şurada geri yüklendi Mac için Microsoft Office 2011. Microsoft, VBA'yı Office'in Windows sürümünden kaldırmayı planlamadığını söyledi.[14][15]

İle Ofis 2010 Microsoft, gerçek bir işaretçi veri türü içeren VBA7'yi tanıttı: LongPtr. Bu, 64 bit adres alanına başvurmaya izin verir. Office 2010'un 64 bit yüklemesi, MSComCtl'nin (TabStrip, Araç Çubuğu, Durum Çubuğu, ProgressBar, TreeView, ListViews, ImageList, Slider, ImageComboBox) veya MSComCt2'nin (Animation, UpDown, MonthView, DateTimePicker, FlatScrollBar) ortak denetimlerini desteklemez, bu nedenle eski Bu ortak kontrollere bağlı olan 64 bit VBA koduna taşınan 32 bit kod çalışmayacaktır. Bu, Office 2010'un 32 bit sürümünü etkilemez.[16] VBA7, ortak kontrollerin 64 bitlik sürümünü içermez, bu nedenle geliştiricilere VBA uygulamalarını 64 bit'e geçirme imkanı bırakmaz. Microsoft, VBA kontrollerinin 64 bit sürümleri için yazılım satıcısına başvurmanızı önerir.

Ayrıca bakınız

Referanslar

  1. ^ "Office 2010'un 32 bit ve 64 bit Sürümleri Arasında Uyumluluk". msdn.microsoft.com.
  2. ^ "Stack Overflow Geliştirici Anketi 2020". Alındı 28 Mayıs 2020. VBA, Objective C ve Perl, en çok korkulan diller için en üst sıralarda yer alıyorlar - şu anda bunları kullanan geliştiricilerin yüksek bir yüzdesine sahip, ancak bunu yapmaya devam etmekle ilgilenmeyen diller.
  3. ^ "Reflection Desktop VBA Kılavuzu". docs.attachmate.com. Alındı 2017-07-01.
  4. ^ "2016 SolidWorks Yardımı - VBA". help.solidworks.com. Alındı 2016-07-25.
  5. ^ a b "ACC: Visual / Access Basic Hem Derleyici hem de Yorumlayıcıdır". Microsoft. 2012. Arşivlenen orijinal 2012-10-21 tarihinde.
  6. ^ "Excel'de RTD işlevi nasıl kurulur ve kullanılır?". msdn.microsoft.com.
  7. ^ "Uygulamalar için Visual Studio". Arşivlenen orijinal 2007-12-17'de.
  8. ^ "Uygulamalar için Visual Studio'ya Giriş". msdn.microsoft.com.
  9. ^ "Komut Dosyası Olur .NET". msdn.microsoft.com.
  10. ^ "Microsoft, VSA Geliştirme Teknolojisini Tamamladı". Arşivlenen orijinal 2007-12-17'de.
  11. ^ a b ".NET'te VSA komut dosyası". Arşivlenen orijinal 2007-02-11 tarihinde.
  12. ^ "WWDC: Microsoft, Mac uygulamalarının Evrensel durumunu günceller". Macworld. 2006-08-07. Alındı 2007-05-25.
  13. ^ "Microsoft Office ve Office 365 nedir - SSS".
  14. ^ "VBA'nın Ölüm Raporları Büyük Ölçüde Abartıldı".
  15. ^ "VBA Desteği Hakkında Açıklama".
  16. ^ "Office 2010'un 32 bit ve 64 bit Sürümleri Arasında Uyumluluk". msdn.microsoft.com.