VBA ম্যাক্রো ইমপ্লিমেন্ট করা এক্সেলে যেকোনো অপারেশন রান করার সবচেয়ে ইফেক্টিভ, দ্রুত, এবং নিরাপদ পদ্ধতি। এই আর্টিকেলে আমরা দেখাব যদি আপনার ডেটাসেটে ফন্ট ক্যালার রেড থাকে তবে VBA ব্যবহার করে এক্সেলে নির্দিষ্ট ফলাফল কীভাবে পেতে হয়।
ওয়ার্কবুক ডাউনলোড করুন
এখান থেকে ফ্রি প্র্যাকটিস এক্সেল ওয়ার্কবুক ডাউনলোড করতে পারেন।
VBA ব্যবহার করে এক্সেলে ফন্ট ক্যালার রেড হলে নির্দিষ্ট ফলাফল পাওয়ার ৬টি পদ্ধতি
নিচের ডেটাসেট দেখুন যেখানে কিছু ভ্যালুর ফন্ট ক্যালার রেড। এই সেকশনে আমরা ধাপে ধাপ প্রসিডিউর আলোচনা করব যদি ফন্ট ক্যালার রেড হয় তবে এক্সেলে কীভাবে নির্দিষ্ট ফলাফল পেতে হয়।

১. ফন্ট ক্যালার রেড হলে নির্দিষ্ট শব্দ রিটার্ন করা এক্সেলে
আমরা চাই যদি ফন্ট ক্যালার রেড হয় তবে Yes রিটার্ন করবে এবং যদি ফন্ট ক্যালার রেড না হয় তবে No রিটার্ন করবে। এক্সেল VBA দিয়ে কিভাবে করা যায় সেটি দেখি।
Steps:
- কিবোর্ডে Alt + F11 চাপুন অথবা Developer -> Visual Basic ট্যাবে যান Visual Basic Editor খোলার জন্য।

- পপ-আপ কোড উইন্ডোতে, মেনু বার থেকে Insert -> Module ক্লিক করুন।

- নিচের কোড কপি করে কোড উইন্ডোতে পেস্ট করুন।
Function FontColorRed(target As Range) Application.Volatile If target.Font.Color = 255 Then FontColorRed = "Yes" Else FontColorRed = "No" End If End Function

এটি VBA প্রোগ্রাম রান করার জন্য Sub Procedure নয়, এটি একটি User Defined Function (UDF) তৈরি করছে। তাই কোড লিখার পর, মেনু বার থেকে Run বাটনে ক্লিক না করে Save ক্লিক করুন।
- এখন আগ্রহের ওয়ার্কশিটে ফিরে যান এবং আপনি যে VBA কোড দিয়ে ফাংশন তৈরি করেছেন সেটি লিখুন (FontColorRed কোডের প্রথম লাইনে Function) এবং FontColorRed ফাংশনের প্যarethesis-এ সেল রেফারেন্স নম্বর পাস করুন যেটি আপনি কনভার্ট করতে চান (আমাদের কেসে, আমরা Cell C5 পাস করছি প্যarethesis-এ)।
তাহলে আমাদের ফাইনাল ফর্মুলা হয়,
=FontColorRed(C5)
- Enter চাপুন।

যদি Cell C5-এ ফন্ট ক্যালার রেড হয় তবে আপনি Yes পাবেন, অন্যথায় No। আমাদের কেসে, Cell C5-এর টেক্সটের ফন্ট ক্যালার রেড নয়, তাই আমরা No পেলাম।
- এখন Fill Handle দিয়ে সারি নিচে ড্র্যাগ করুন যাতে UDF বাকি সেলগুলোর জন্যও প্রয়োগ হয় এবং যেসব সেলে রেড ফন্ট ক্যালারের টেক্সট রয়েছে তাদের পাশে Yes দেখাবে।

২. ফন্ট ক্যালার রেড হলে কালার কোড রিটার্ন করা
এখানে আমরা শিখব এক্সেলে VBA দিয়ে ফন্ট ক্যালার রেড ভিত্তিক করে কালার কোড কীভাবে এক্সট্র্যাক্ট করতে হয়।
Steps:
- একইভাবে আগের মত, Developer ট্যাব থেকে Visual Basic Editor খুলুন এবং কোড উইন্ডোতে Module Insert করুন।
- কোড উইন্ডোতে, নিচের কোড কপি করে পেস্ট করুন।
Function ColorCode(rng As Range) ColorCode = rng.Font.ColorIndex End Function

- এখন, আগের মত, ডেটাসেট থেকে ColorCode UDF কল করুন, সেল রেফারেন্স নম্বর পাস করুন (যেমন C5) আর্গুমেন্ট হিসেবে, Enter চাপুন।

আপনি ফন্ট ক্যালারের সפתچیয়েট কালার কোড রিটার্ন ভ্যালু হিসেবে পাবেন।
- এখন Fill Handle দিয়ে সারি নিচে ড্র্যাগ করুন যাতে UDF বাকি সেলগুলোর জন্যও প্রয়োগ হয় এবং ফন্ট ক্যালার রেডের কোড পান।

৩. ফন্ট ক্যালার রেড হলে ইনডেক্স রিটার্ন করা এক্সেলে
এখানে আমরা শিখব এক্সেলে VBA দিয়ে ফন্ট ক্যালার রেড ভিত্তিক করে ইনডেক্স নম্বর কীভাবে রিটার্ন করতে হয়।
Steps:
- একইভাবে, Developer ট্যাব থেকে Visual Basic Editor খুলুন এবং কোড উইন্ডোতে Module Insert করুন।
- কোড উইন্ডোতে, নিচের কোড কপি করে পেস্ট করুন।
Function IndexColor(cell As Range) IndexColor = cell.Font.Color End Function

- এখন, আগের মত, ডেটাসেট থেকে IndexColor UDF কল করুন, সেল রেফারেন্স নম্বর পাস করুন (যেমন C5) আর্গুমেন্ট হিসেবে, Enter চাপুন।

আপনি ফন্ট ক্যালারের সংশ্লিষ্ট ইনডেক্স নম্বর রিটার্ন ভ্যালু হিসেবে পাবেন।
- এখন Fill Handle দিয়ে সারি নিচে ড্র্যাগ করুন যাতে UDF বাকি সেলগুলোর জন্যও প্রয়োগ হয় এবং ফন্ট ক্যালার রেডের ইনডেক্স নম্বর পান।

যেসব সেলে রেড ক্যালারের ফন্ট থাকবে সেগুলো 255 রিটার্ন করবে কারণ রেড ক্যালারের ইনডেক্স নম্বর 255।
৪. ফন্ট ক্যালার রেড হলে RGB কোড রিটার্ন করা এক্সেলে
এখানে আমরা শিখব এক্সেলে VBA দিয়ে ফন্ট ক্যালার রেড ভিত্তিক করে RGB কোড কীভাবে পেতে হয়।
Steps:
- একইভাবে, Developer ট্যাব থেকে Visual Basic Editor খুলুন এবং কোড উইন্ডোতে Module Insert করুন।
- কোড উইন্ডোতে, নিচের কোড কপি করে পেস্ট করুন।
Function FontRGB(cell As Range) Dim iColorIndex As Long Dim iColor As Variant iColorIndex = cell.Font.Color iColor = iColorIndex Mod 256 iColor = iColor & ", " iColor = iColor & (iColorIndex \ 256) Mod 256 iColor = iColor & ", " iColor = iColor & (iColorIndex \ 256 \ 256) Mod 256 FontRGB = iColor End Function

- এখন, আগের মত, ডেটাসেট থেকে FontRGB UDF কল করুন, সেল রেফারেন্স নম্বর পাস করুন (যেমন C5) আর্গুমেন্ট হিসেবে, Enter চাপুন।

আপনি ফন্ট ক্যালারের সংশ্লিষ্ট RGB কোড রিটার্ন ভ্যালু হিসেবে পাবেন।
- এখন Fill Handle দিয়ে সারি নিচে ড্র্যাগ করুন যাতে UDF বাকি সেলগুলোর জন্যও প্রয়োগ হয় এবং ফন্ট ক্যালার রেডের RGB কোড পান।

যেসব সেলে রেড ক্যালারের ফন্ট থাকবে সেগুলো 255,0,0 রিটার্ন করবে কারণ রেড ক্যালারের RGB কোড 255,0,0।
৫. ফন্ট ক্যালার রেড হলে সেল হাইলাইট করা
যদি আপনি রেড ক্যালার ফন্ট ধারণকারী সেলগুলো হাইলাইট করতে চান, তবে আর্টিকেলটি পড়তে থাকুন কিভাবে করা যায় সেটি জানতে।
Steps:
- একইভাবে, Developer ট্যাব থেকে Visual Basic Editor খুলুন এবং কোড উইন্ডোতে Module Insert করুন।
- কোড উইন্ডোতে, নিচের কোড কপি করে পেস্ট করুন।
Sub HighlightCell() Set ws = Sheets("Highlight") 'set the worksheet For r = 1 To 104 For c = 1 To 36 If (ws.Cells(r, c).Font.Color = 255) Then 'set the desired color index ws.Cells(r, c).Interior.ColorIndex = 34 End If Next c Next r End Sub
আপনার কোড এখন রান করার জন্য প্রস্তুত।

- কিবোর্ডে F5 চাপুন অথবা মেনু বার থেকে Run -> Run Sub/UserForm সিলেক্ট করুন। সাব-মেনু বারের ছোট Play icon-এ ক্লিক করেও ম্যাক্রো রান করা যায়।

আপনি দেখবেন যে রেড-ক্যালার্ড ফন্ট ওয়ালা সেলগুলো এখন হাইলাইটেড।

৬. ফন্ট ক্যালার রেড হলে ফন্ট ক্যালার পরিবর্তন করা
যদি আপনি ফন্ট ক্যালার রেডকে ডিফল্ট ক্যালারে ফিরিয়ে আনা চান, তবে নিচের ধাপগুলো অনুসরণ করুন।
Steps:
- একইভাবে, Developer ট্যাব থেকে Visual Basic Editor খুলুন এবং কোড উইন্ডোতে Module Insert করুন।
- কোড উইন্ডোতে, নিচের কোড কপি করে পেস্ট করুন।
Sub ChangeFontColor() With Application.FindFormat.Font .Subscript = False .Color = 255 .TintAndShade = 0 End With With Application.ReplaceFormat.Font .Subscript = False .ColorIndex = xlAutomatic .TintAndShade = 0 End With Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _ xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True End Sub
আপনার কোড এখন রান করার জন্য প্রস্তুত।

- Run করুন ম্যাক্রো।

রেড ফন্ট ক্যালার ওয়ালা ভ্যালুগুলো এখন ডিফল্ট ফন্ট ক্যালারে ফিরে এসেছে।
উপসংহার
এই আর্টিকেলে আপনাকে দেখানো হয়েছে যদি আপনার ডেটাসেটের ভ্যালুগুলোর ফন্ট ক্যালার রেড হয় তবে VBA ব্যবহার করে এক্সেলে কীভাবে নির্দিষ্ট ফলাফল পেতে হয়। আশা করি এই আর্টিকেল আপনার জন্য খুব উপকারী হবে। বিষয়টি নিয়ে আপনার যেকোনো প্রশ্ন থাকলে বेझিঝক জিজ্ঞাসা করুন।
আপনি আরও এক্সপ্লোর করতে পারেন
- VBA দিয়ে এক্সেলে স্ট্রিং থেকে ক্যারেক্টার রিমুভ (৭ পদ্ধতি)
- VBA ব্যবহার করে এক্সেলে খালি সারি ডিলিট করা
- VBA ম্যাক্রো দিয়ে এক্সেলে সারি ইনসার্ট করা ক্রাইটেরিয়া ভিত্তিক (৪ পদ্ধতি)
- VBA দিয়ে এক্সেলে সারি কাউন্ট করার ৫ পদ্ধতি
- VBA দিয়ে সেল ভ্যালু ভিত্তিক পুরো সারি ডিলিট করা (৩ পদ্ধতি)