کن تعجب می کند که آیا تابع کاربرگ وجود دارد که نشان دهد محتوای یک سلول پررنگ است یا خیر. او می تواند توابع اطلاعاتی دیگری مانند ISBLANK را بیابد، اما نمی تواند یکی را پیدا کند که نشان دهد سلول پررنگ است.
هیچ تابع ISBOLD داخل اکسل وجود ندارد. یک راه بسیار محرمانه برای انجام این کار بدون توسل به ماکرو وجود دارد، اما فقط با برخی از نسخه های اکسل کار می کند. به عنوان مثال، ظاهراً این رویکرد با Office 365 کار نمی کند، زیرا به نظر می رسد که مایکروسافت در نهایت پشتیبانی از آن را حذف کرده است. این تابع قدیمی اکسل 4 که GET.CELL نام دارد با برخی از نسخه های قدیمی اکسل کار می کند. در اینجا نحوه استفاده از آن در فرمول آمده است:
=IF(GET.CELL(20,A1), "Bold", "Not Bold")
اگر حداقل اولین کاراکتر در سلول پررنگ باشد، تابع GET.CELL True را برمی گرداند.
یک رویکرد بهتر ایجاد یک تابع تعریف شده توسط کاربر در VBA است که می تواند از کاربرگ شما فراخوانی شود. در اینجا یک نسخه ساده از چنین UDF وجود دارد:
Function CheckBold(cell As Range) As Boolean
Application.Volatile
CheckBold = cell.Font.Bold
End Function
برای استفاده از آن در کاربرگ خود، این کار را به این صورت انجام دهید:
=IF(CheckBold(A1), "Bold", "Not Bold")
تابع CheckBold تنها زمانی به روزرسانی می شود که کاربرگ شما دوباره محاسبه شود، نه اگر به سادگی قالب بندی پررنگ را روی سلول A1 اعمال کنید یا از آن حذف کنید.
این رویکرد می تواند برای اکثر موارد کار کند، اما درک می کند که ویژگی Bold در واقع می تواند سه تنظیمات ممکن داشته باشد: True، False، و Null. اگر هیچ یک از کاراکترهای سلول پررنگ نباشد، این ویژگی روی False تنظیم می شود. اگر همه آنها پررنگ باشند روی True تنظیم می شود. در نهایت، اگر فقط برخی از کاراکترهای سلول پررنگ باشند، روی Null تنظیم می شود. اگر فکر می کنید ممکن است با این وضعیت مواجه شوید، باید تابع CheckBold را تغییر دهید:
Function CheckBold(cell As Range) As Integer
Dim iBold As Integer
Application.Volatile
iBold = 0
If IsNull(cell.Font.Bold) Then
iBold = 2
Else
If cell.Font.Bold Then iBold = 1
End If
CheckBold = iBold
End Function
توجه داشته باشید که تابع اکنون مقداری از 0 تا 2 را برمی گرداند. اگر 0 برگرداند، هیچ پررنگی در سلول وجود ندارد. اگر 1 برگرداند، کل سلول پررنگ است. اگر عدد 2 را برگرداند، در سلول پررنگ جزئی وجود دارد.