تبدیل کد Interior.Color
در VBA به VB.NET
مقدمه
در محیط برنامهنویسی VBA، برای تغییر رنگ پسزمینه یک سلول در اکسل از Interior.Color
استفاده میشود. اما در VB.NET که از کتابخانههای متفاوتی استفاده میکند، این روش متفاوت است. در این مقاله از رادیب، روش معادل در VB.NET را بررسی میکنیم.
۱. روش استفاده از Interior.Color
در VBA
در VBA، برای تغییر رنگ یک سلول در اکسل از کد زیر استفاده میشود:
خرید سرور مجازی با قیمت اقتصادی از رادیب، کلیک کنید
Sub ChangeColorVBA()
Range("A1").Interior.Color = RGB(255, 0, 0) ' تغییر رنگ پسزمینه به قرمز
End Sub
۲. معادل آن در VB.NET
در VB.NET، برای تغییر رنگ سلولهای اکسل باید از کتابخانه Microsoft.Office.Interop.Excel استفاده کرد. معادل کد بالا در VB.NET به این شکل خواهد بود:
Imports Microsoft.Office.Interop.Excel
Module Module1
Sub Main()
Dim xlApp As New Application()
Dim xlWorkbook As Workbook = xlApp.Workbooks.Open("C:\example.xlsx")
Dim xlWorksheet As Worksheet = xlWorkbook.Sheets(1)
xlWorksheet.Range("A1").Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red)
xlWorkbook.Save()
xlWorkbook.Close()
xlApp.Quit()
End Sub
End Module
۳. توضیحات کد VB.NET
- ابتدا یک شیء از اکسل ایجاد میکنیم:
Dim xlApp As New Application()
- سپس فایل اکسل مورد نظر را باز میکنیم:
Dim xlWorkbook As Workbook = xlApp.Workbooks.Open("C:\example.xlsx")
- برای انتخاب شیت مورد نظر از
Sheets(1)
استفاده میکنیم.Dim xlWorksheet As Worksheet = xlWorkbook.Sheets(1)
- سپس رنگ سلول A1 را تغییر میدهیم. اما در VB.NET برای تعیین رنگ باید از
System.Drawing.ColorTranslator.ToOle()
استفاده کنیم:xlWorksheet.Range("A1").Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red)
- در نهایت فایل اکسل را ذخیره کرده و اکسل را میبندیم.
۴. نتیجهگیری
در حالی که VBA از Interior.Color = RGB(255, 0, 0)
استفاده میکند، در VB.NET باید از System.Drawing.ColorTranslator.ToOle()
برای تبدیل رنگ استفاده کنیم. همچنین در VB.NET نیاز به مدیریت شیء اکسل بهصورت دستی داریم.