کار با VBA Macro در سی شارپ

VBA (Visual Basic for Applications) یک زبان برنامه‌نویسی است که در فایل‌های MS Excel به منظور خودکار کردن عملیات مربوط به صفحات گسترده استفاده می‌شود. ماکروهای VBA برای نوشتن توابع تعریف شده توسط کاربر استفاده می شوند که به شما امکان می دهند کارهایی را که باید به صورت دستی انجام دهید سرعت بخشید. در این مقاله با نحوه کار با ماکروهای VBA در فایل های MS Excel به صورت برنامه نویسی آشنا می شوید. تا پایان این مقاله، می‌توانید با استفاده از سی شارپ، ماکروهای VBA را در کتاب‌های کار اکسل استخراج، اضافه و اصلاح کنید.

کار با ماکروهای VBA در فایل های اکسل - C# API

Aspose.Cells for .NET یک کتابخانه کلاس C# است که برای خودکارسازی دستکاری صفحه گسترده از داخل برنامه های NET طراحی شده است. API طیف گسترده ای از ویژگی ها را ارائه می دهد که به شما امکان ایجاد، اصلاح و تبدیل کتاب های کار MS Excel را می دهد. علاوه بر این، API کار با ماکروهای VBA را به صورت یکپارچه ممکن می کند. Aspose.Cells برای .NET برای دانلود به عنوان یک فایل DLL و همچنین میزبانی در NuGet در دسترس است.

PM> Install-Package Aspose.Cells

استخراج ماکروهای VBA از یک فایل اکسل با استفاده از سی شارپ

بیایید با استخراج ماکروهای VBA از یک کتاب کار موجود اکسل شروع کنیم. مراحل زیر برای انجام این عملیات آورده شده است.

  • یک شی از کلاس Workbook برای بارگذاری فایل اکسل ایجاد کنید.
  • به هر ماژول VBA از مجموعه Workbook.VbaProject.Modules در شی VbaModule دسترسی پیدا کنید.
  • با استفاده از ویژگی VbaModule.Codes کد را از هر ماژول بازیابی کنید.

نمونه کد زیر نحوه استخراج ماکرو VBA از یک کتاب کار اکسل با استفاده از C# را نشان می دهد.

// برای نمونه‌های کامل و فایل‌های داده، لطفاً به https://github.com/aspose-cells/Aspose.Cells-for-.NET بروید
// ایجاد شی کتاب کار از فایل اکسل منبع
Workbook workbook = new Workbook("sample.xlsm");

// کد را از هر ماژول VBA استخراج کنید
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;
    Console.Write(code);
}

اضافه کردن ماکروهای VBA به یک فایل اکسل با استفاده از C#

Aspose.Cells برای دات نت همچنین به شما امکان می دهد ماکروهای VBA را به فایل های موجود یا جدید اکسل اضافه کنید. این را می توان با انجام مراحل زیر انجام داد.

  • با استفاده از کلاس Workbook یک فایل اکسل جدید ایجاد کنید یا یک فایل موجود را بارگیری کنید.
  • یک کاربرگ جدید اضافه کنید یا با استفاده از کلاس Worksheet مورد موجود را دریافت کنید.
  • یک ماژول VBA جدید با استفاده از روش Workbook.VbaProject.Modules.Add(Worksheet) اضافه کنید و شناسه ماژول را دریافت کنید.
  • به ماژول VBA از مجموعه Workbook.VbaProject.Modules[idx] در شیء VbaModule دسترسی پیدا کنید.
  • نام ماژول را با استفاده از ویژگی VbaModule.Name اضافه کنید.
  • با استفاده از ویژگی VbaModule.Codes کد را به ماژول اضافه کنید.
  • کتاب کار را با استفاده از روش Workbook.Save(String, SaveFormat.Xlsm) ذخیره کنید.

نمونه کد زیر نحوه افزودن یک ماکرو VBA را با استفاده از سی شارپ به کتاب کار اکسل نشان می دهد.

// برای نمونه های کامل و فایل های داده، لطفاً به https://github.com/aspose-cells/Aspose.Cells-for-.NET بروید
// کتاب کار جدید ایجاد کنید
Workbook workbook = new Workbook();

// دسترسی به کاربرگ اول
Worksheet worksheet = workbook.Worksheets[0];

// اضافه کردن ماژول VBA
int idx = workbook.VbaProject.Modules.Add(worksheet);

// به ماژول VBA دسترسی پیدا کنید، نام و کدهای آن را تنظیم کنید
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";

// کتاب کار را ذخیره کنید
workbook.Save("output_out.xlsm", SaveFormat.Xlsm);

ماکرو VBA را در یک فایل اکسل با استفاده از C# تغییر دهید

همچنین می توانید ماکروهای VBA موجود در یک فایل اکسل را با استفاده از مراحل زیر تغییر دهید.

  • از کلاس Workbook برای بارگیری فایل اکسل استفاده کنید.
  • به ماژول های VBA از مجموعه Workbook.VbaProject.Modules در شی VbaModule دسترسی پیدا کنید.
  • با استفاده از ویژگی VbaModule.Codes کد را از ماژول مورد نظر بازیابی کنید.
  • کد را جایگزین کنید و فایل اکسل را با استفاده از روش Workbook.Save(String) ذخیره کنید.

نمونه کد زیر نحوه تغییر یک ماکرو VBA را در یک فایل اکسل با استفاده از C# نشان می دهد.

// برای نمونه های کامل و فایل های داده، لطفاً به https://github.com/aspose-cells/Aspose.Cells-for-.NET بروید
// ایجاد شی کتاب کار از فایل اکسل منبع
Workbook workbook = new Workbook("sample.xlsm");

// کد ماژول VBA را تغییر دهید
foreach (VbaModule module in workbook.VbaProject.Modules)
{
    string code = module.Codes;

    // پیام اصلی را با پیام اصلاح شده جایگزین کنید
    if (code.Contains("This is test message."))
    {
        code = code.Replace("This is test message.", "This is Aspose.Cells message.");
        module.Codes = code;
    }
}

// فایل اکسل خروجی را ذخیره کنید
workbook.Save("output_out.xlsm");

مجوز رایگان دریافت کنید

می‌توانید با استفاده از مجوز موقت 30 روزه از Aspose.Cells برای دات‌نت به‌صورت رایگان استفاده یا ارزیابی کنید. هم اکنون مال خود را دریافت کنید.

نتیجه

ماکروهای VBA در فایل‌های MS Excel برای خودکارسازی انواع مختلف وظایف مربوط به صفحات گسترده استفاده می‌شوند. به منظور مدیریت برنامه نویسی ماکروهای VBA، این مقاله نحوه استخراج، افزودن و اصلاح کد در ماژول های VBA با استفاده از C# را شرح داد. با استفاده از documentation می‌توانید درباره API دستکاری صفحه‌گسترده C# بیشتر کاوش کنید.

همچنین ببینید

نکته: ممکن است بخواهید Aspose [برنامه وب حذف رایگان ماکرو2 را بررسی کنید.