VBA (Visual Basic for Applications), elektronik tablolarla ilgili işlemleri otomatikleştirmek için MS Excel dosyalarında kullanılan bir programlama dilidir. VBA makroları, manuel olarak gerçekleştirmeniz gereken görevleri hızlandırmanıza izin veren kullanıcı tanımlı işlevleri yazmak için kullanılır. Bu yazıda, MS Excel dosyalarındaki VBA makroları ile programlı olarak nasıl çalışılacağını öğreneceksiniz. Bu makalenin sonunda, C# kullanarak Excel çalışma kitaplarında VBA makrolarını ayıklayabilecek, ekleyebilecek ve değiştirebileceksiniz.
- C# API kullanarak VBA Makroları ile çalışın
- Bir Excel Çalışma Kitabından VBA Makrolarını Çıkarın
- Excel Çalışma Kitabına VBA Makroları Ekleme
- Bir Excel Çalışma Kitabında VBA Makrosunu Değiştirme
- Ücretsiz Lisans Alın
Excel Dosyalarında VBA Makrolarıyla Çalışma - C# API
Aspose.Cells for .NET, .NET uygulamalarının içinden elektronik tablo işlemeyi otomatikleştirmek için tasarlanmış bir C# sınıf kitaplığıdır. API, MS Excel çalışma kitaplarını oluşturmanıza, değiştirmenize ve dönüştürmenize olanak tanıyan çok çeşitli özellikler sağlar. Ayrıca API, VBA makrolarıyla sorunsuz bir şekilde çalışmayı mümkün kılar. Aspose.Cells for .NET, bir DLL dosyası olarak indirilebilir ve NuGet üzerinde barındırılabilir.
PM> Install-Package Aspose.Cells
C# kullanarak bir Excel Dosyasından VBA Makrolarını Çıkarın
Mevcut bir Excel çalışma kitabından VBA makrolarını ayıklayarak başlayalım. Aşağıda bu işlemi gerçekleştirmek için adımlar verilmiştir.
- Excel dosyasını yüklemek için Workbook sınıfından bir nesne oluşturun.
- Workbook.VbaProject.Modules koleksiyonundaki her bir VBA modülüne VbaModule nesnesine erişin.
- VbaModule.Codes özelliğini kullanarak her modülden kod alın.
Aşağıdaki kod örneği, C# kullanarak bir Excel çalışma kitabından VBA makrosunun nasıl ayıklanacağını gösterir.
// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-cells/Aspose.Cells-for-.NET adresine gidin.
// Kaynak Excel dosyasından çalışma kitabı nesnesi oluşturun
Workbook workbook = new Workbook("sample.xlsm");
// Her VBA modülünden kod ayıklayın
foreach (VbaModule module in workbook.VbaProject.Modules)
{
string code = module.Codes;
Console.Write(code);
}
C# kullanarak bir Excel Dosyasına VBA Makroları Ekleme
Aspose.Cells for .NET ayrıca mevcut veya yeni Excel dosyalarına VBA makroları eklemenizi sağlar. Bu, aşağıdaki adımları izleyerek yapılabilir.
- Workbook sınıfını kullanarak yeni bir Excel dosyası oluşturun veya mevcut bir dosyayı yükleyin.
- Worksheet sınıfını kullanarak yeni bir çalışma sayfası ekleyin veya mevcut olanı alın.
- Workbook.VbaProject.Modules.Add(Worksheet) yöntemini kullanarak yeni bir VBA modülü ekleyin ve modülün kimliğini alın.
- Workbook.VbaProject.Modules[idx] koleksiyonundan VbaModule nesnesine VBA modülüne erişin.
- VbaModule.Name özelliğini kullanarak modülün adını ekleyin.
- VbaModule.Codes özelliğini kullanarak modüle kod ekleyin.
- Çalışma kitabını Workbook.Save(String, SaveFormat.Xlsm) yöntemini kullanarak kaydedin.
Aşağıdaki kod örneği, C# kullanarak Excel çalışma kitabına bir VBA makrosunun nasıl ekleneceğini gösterir.
// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-cells/Aspose.Cells-for-.NET adresine gidin.
// Yeni çalışma kitabı oluştur
Workbook workbook = new Workbook();
// İlk çalışma sayfasına erişin
Worksheet worksheet = workbook.Worksheets[0];
// VBA Modülü Ekle
int idx = workbook.VbaProject.Modules.Add(worksheet);
// VBA Modülüne erişin, adını ve kodlarını ayarlayın
Aspose.Cells.Vba.VbaModule module = workbook.VbaProject.Modules[idx];
module.Name = "TestModule";
module.Codes = "Sub ShowMessage()" + "\r\n" +
" MsgBox \"Welcome to Aspose!\"" + "\r\n" +
"End Sub";
// çalışma kitabını kaydet
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);
C# kullanarak bir Excel Dosyasında VBA Makrosunu Değiştirme
Aşağıdaki adımları kullanarak bir Excel dosyasındaki mevcut VBA makrolarını da değiştirebilirsiniz.
- Excel dosyasını yüklemek için Workbook sınıfını kullanın.
- Workbook.VbaProject.Modules koleksiyonundaki VBA modüllerine VbaModule nesnesine erişin.
- VbaModule.Codes özelliğini kullanarak istenen modülden kod alın.
- Kodu değiştirin ve Excel dosyasını Workbook.Save(String) yöntemini kullanarak kaydedin.
Aşağıdaki kod örneği, C# kullanarak bir Excel dosyasındaki VBA makrosunun nasıl değiştirileceğini gösterir.
// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-cells/Aspose.Cells-for-.NET adresine gidin.
// Kaynak Excel dosyasından çalışma kitabı nesnesi oluşturun
Workbook workbook = new Workbook("sample.xlsm");
// VBA Modül Kodunu Değiştirin
foreach (VbaModule module in workbook.VbaProject.Modules)
{
string code = module.Codes;
// Orijinal mesajı değiştirilen mesajla değiştirin
if (code.Contains("This is test message."))
{
code = code.Replace("This is test message.", "This is Aspose.Cells message.");
module.Codes = code;
}
}
// Çıktı Excel dosyasını kaydedin
workbook.Save("output_out.xlsm");
Ücretsiz Lisans Alın
Aspose.Cells for .NET’i 30 gün geçerli geçici bir lisans kullanarak ücretsiz olarak kullanabilir veya değerlendirebilirsiniz. Şimdi sizinkini alın.
Çözüm
MS Excel dosyalarındaki VBA makroları, elektronik tablolarla ilgili çeşitli görev türlerini otomatikleştirmek için kullanılır. Bu makale, VBA makrolarını programlı olarak işlemek için C# kullanarak VBA modüllerinde kodun nasıl çıkarılacağını, ekleneceğini ve değiştirileceğini ele aldı. Belgeleri kullanarak C# elektronik tablo işleme API’si hakkında daha fazla şey keşfedebilirsiniz.
Ayrıca bakınız
İpucu: Aspose’a ÜCRETSİZ makro kaldırma web uygulaması göz atmak isteyebilirsiniz.