VBA kodunuzu Macro Converter ile Apps Script'e dönüştürürken karşılaşabileceğiniz yaygın sorunlar aşağıda listelenmiştir.
Yazdırma
Dosya yazdıran VBA API'leri otomatik olarak Apps Komut Dosyası'na dönüştürülür ancak orijinal VBA API'sinden farklı davranabilir. Aşağıda iki örnek verilmiştir:
VBA API | Apps Komut Dosyası'ndaki davranış |
---|---|
PrintOut | Apps Komut Dosyası'na dönüştürülür ancak Apps Komut Dosyası API'si yazıcı yerine dosyaya yazdırır. PDF dosyasını manuel olarak yazdırabilirsiniz. |
PrintToFile | Apps Komut Dosyası'na dönüştürülür. PDF dosyası, Drive'ım klasörünüze kaydedilir. |
Dönüşüm gerçekleştirmeyen öğeler
Aşağıdaki özellikler Makro Dönüştürücü tarafından dönüştürülmez ve manuel olarak dönüştürülmesi gerekir:
- Bazı tetikleyici türleri
- Userforms
- Desteklenmeyen adlandırılmış aralık türleri
Tetikleyiciler
Klavye kısayolları ve bazı etkinlik tabanlı tetikleyiciler gibi iki tür tetikleyici, Makro Dönüştürücü tarafından dönüştürülmez. Çoğu durumda bu tetikleyicileri manuel olarak oluşturabilirsiniz.
Klavye kısayolları
Klavye kısayolları eklemek için işlevleri makro olarak içe aktarma adımlarını uygulayın.
Etkinliğe dayalı tetikleyiciler
VBA kodundaki BeforeClose
veya BeforeSave
gibi bazı etkinliklerin Apps Komut Dosyası'nda eşdeğeri yoktur ancak geçici bir çözüm oluşturabilirsiniz.
BeforeClose
gibi etkinlikler için, e-tabloyu kapatmadan önce yapılması gereken işlemi gerçekleştirmek üzere tıklanabilecek özel bir menü veya düğme oluşturabilirsiniz.
Google E-Tablolar her düzenlemeyi otomatik olarak kaydettiğinden BeforeSave
gibi etkinlikler için geçici çözümler uygun değildir.
Userforms
VBA'da UserForm, bir uygulamanın kullanıcı arayüzündeki (UI) bir pencere veya iletişim kutusudur. Makro Dönüştürücü, UserForm'ları dönüştürmez. Bunları Apps Script'te manuel olarak oluşturabilirsiniz.
Kullanıcı formu iletişim kutusu oluşturma
- Bilgisayarınızda, dönüştürülmüş dosyayı Google E-Tablolar'da açın.
- En üstte Uzantılar > ** Apps Komut Dosyası**'nı tıklayın.
- Düzenleyicinin sol tarafında,"Dosyalar"ın yanındaki Dosya ekle'yi > HTML tıklayın. HTML dosyasına, orijinal VBA UserForm'unuzla aynı adı vermenizi öneririz.
- Formunuzda görünmesini istediğiniz alanları ve bilgileri ekleyin. HTML formları hakkında daha fazla bilgiyi W3school.com adresinde bulabilirsiniz.
- Sol tarafta, dönüştürülmüş kodunuzun bulunduğu Apps Komut Dosyası dosyasını (GS dosyası) tıklayın.
- Kodunuzda zaten bir
onOpen()
tetikleyici varsa bunu aşağıdaki kodla güncelleyin. KodunuzdaonOpen()
tetikleyicisi yoksa aşağıdaki kodu ekleyin.function onOpen() { SpreadsheetApp.getUi() .createMenu('User Form') .addItem('Show Form', 'showForm') .addToUi(); } function showForm() { var html = HtmlService.createHtmlOutputFromFile('userform_module_name') .setWidth(100) .setTitle('Sign-up for Email Updates'); SpreadsheetApp.getUi().showSidebar(html); }
userform_module_name
yerine, eklediğiniz HTML dosyasının adını yazın.- Üstte, Projeyi kaydet'i tıklayın.
- Google E-Tablosu'na geçin ve sayfayı yeniden yükleyin.
- Google E-Tablosunun üst kısmında Kullanıcı Formu > Formu Göster'i tıklayın.
Adlandırılmış aralıklar
Excel'de adlandırılmış aralıklar, tek bir hücreye veya hücre aralığına verilen adlardır.
Excel dosyanızı Google E-Tablolar'a dönüştürdüğünüzde, desteklenmediği için bazı adlandırılmış aralık türleri dönüştürülmez. Aşağıda iki örnek verilmiştir:
Desteklenmeyen adlandırılmış aralıklar | Açıklama |
---|---|
Tablolar | Google E-Tablolar'da desteklenmez ancak bununla ilgili bir çözüm vardır.
Bu adlandırılmış aralığı E-Tablolar'da yeniden oluşturmak için tablo aralığının A1 gösterimini işaret eden bir adlandırılmış aralığı ekleyin. Dönüştürülen kodun tanıması için VBA kodunuzda orijinal adlandırılmış aralık ile aynı adı kullanın. |
Aralık listesi | Google E-Tablolar'da desteklenmez. Bu sorunun geçici bir çözümü yoktur. |
İlgili makaleler
- Macro Converter eklentisine genel bakış
- VBA makrolarının uyumlu olup olmadığını belirleme
- VBA makrolarını Apps Komut Dosyası'na dönüştürme
- Dönüştürülmüş kodunuzdaki hataları düzeltme
- Makro Dönüştürücü eğitimlerini izleme
- Uyumlu VBA API'lerinin listesi