تغییر اتوماتیک رنگ سلول اکسل 2024 – Persianfi
تغییر اتوماتیک رنگ سلول اکسل
ورود به محیط VBA اکسل – محیط کد نویسی اکسل
با کمک ALT+F11 یا کلیک روی زبانه Developer و انتخاب Visual Basic وارد محیط کدنویسی اکسل می شویم.
در این محیط روی شیت مورد نظر دابل کلیک کرده و از کادر بالا ( مطابق ویدئو ) ابتدا Worksheet را انتخاب کنید و در کادر سمت راست گزینه SelectionChange را انتخاب کنید.
در صورتی که زبانه Developer نمایش داده نمی شود می توانید از گزینه File > Options < Customize Ribbon و کادر سمت چپ ، تیک زبانه Developer زده و ok را کلیک نمایید.
توضیحات رویداد
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
این یک رویداد داخلی (Event) در اکسل است.
Worksheet_SelectionChange: یعنی وقتی کاربر در شیت سلول جدیدی را انتخاب میکند (کلیک میکند یا با کیبورد جابهجا میشود)، این کد اجرا میشود.
کد تغییر رنگ اتوماتیک سطر و ستون
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
‘ حذف رنگهاي قبلی
Cells.Interior.ColorIndex = xlNone
‘ اگر سلولي انتخاب شد
If Target.Cells.Count = 1 Then
‘ رنگ سطر و ستون را تغيير بده
Rows(Target.Row).Interior.Color = RGB(204, 229, 255)
Columns(Target.Column).Interior.Color = RGB(204, 229, 255)
End If
End Sub
تفسیر کد تغییر اتوماتیک رنگ سلول اکسل
Target: محدودهای (Range) است که کاربر روی آن کلیک کرده؛ مثلاً A1 یا B2:C5.
Cells.Interior.ColorIndex = xlNone
این خط رنگ تمام سلولهای شیت را از رنگ پسزمینه پاک میکند.
Cells: همه سلولهای شیت.
Interior: مربوط به پسزمینه (Background) سلول است.
ColorIndex = xlNone: یعنی بدون رنگ (پاک کردن هر رنگ قبلی).
نکته : اگر از علامت ( , ) ، در ابتدای هر خط کد استفاده کنید، آن خط اجرا نمی شود.
به عنوان مثال اگر رنگ تمام سلول ها را دلیت نکنید، با هر کلیک آن رنگ ( مطابق ویدئو ) پاک نمی شود.
If Target.Cells.Count = 1 Then
بررسی میکند که آیا فقط یک سلول انتخاب شده یا نه.
چون اگر مثلاً محدودهای مثل A1:B2 انتخاب شده باشه، نمیخواهیم سطر و ستونش را رنگ کنیم (برای جلوگیری از رفتار ناخواسته).
فقط اگر یک سلول تکی انتخاب شده باشد، دستورات بعدی اجرا میشوند.
Rows(Target.Row).Interior.Color = RGB(204, 229, 255)
این خط کل ردیفی که سلول انتخابشده در آن است را رنگ میکند.
Target.Row: شماره ردیف سلول انتخابشده.
Rows(…): ارجاع به آن ردیف کامل.
Interior.Color: تنظیم رنگ پسزمینه.
RGB(204, 229, 255): رنگ آبی کمرنگ. این تابع سه عدد میگیرد: قرمز، سبز، آبی.
نکته : می توانید با تغییر شماره ها رنگ مورد نظر خود را اعمال نمایید.
به عنوان مثال برای رنگ سبز بنفش کمرنگ RGB(204, 219, 255) ، برای رنگ فسفری RGB(204, 259, 255) ، برای رنگ صورتی RGB(254, 229, 255) – برای رنگ سبز RGB(214, 229, 235) می توانید از کدهای فوق استفاده نمایید.
Columns(Target.Column).Interior.Color = RGB(204, 229, 255)
مثل خط قبلی، ولی برای ستون سلول انتخابشده.
Target.Column: شماره ستون.
Columns(…): ارجاع به آن ستون کامل.
رنگ همان رنگ آبی کمرنگ است.
نکته : اگر از علامت ( , ) ، در ابتدای هر خط کد استفاده کنید، آن خط اجرا نمی شود.
به عنوان مثال اگر رنگ تمام سلول ها را دلیت نکنید، با هر کلیک آن رنگ ( مطابق ویدئو ) پاک نمی شود و همچنین اگر رنگ ستون را غیر فعال کنید ( یا این خط کد نوشته نشود ) ، فقط سطر مورد نظر رنگ می گیرد.
End If
پایان بلوک شرطی If
End Sub
پایان کل زیرروال (Subroutine)
جمعبندی :
این کد فقط زمانی که فقط یک سلول تکی کلیک شود اجرا می شود.
قبل از هر انتخاب، همه رنگها را پاک میشود .
سپس سطر و ستون آن سلول را با رنگ مورد نظر مشخص میکند.
با کمک این ترفند می توانید در انواع مغایرت گیری با اکسل استفاده نمود.
همچنین می توانید دیگر آموزش های رایگان را، در سربرگ سایت (آموزش اکسل) مطالعه نمایید.