اسکار نیاز به تعیین فونت و اندازه فونت اعمال شده روی متن در یک سلول دارد. به عنوان مثال، اگر متن سلول A1 به صورت Arial 12 نقطه ای باشد، تابعی را می خواهد که بتوان از آن برای برگرداندن "Arial" در سلول B1 و 12 در سلول C1 استفاده کرد.
هیچ چیز داخلی در اکسل وجود ندارد که به این اطلاعات قالب بندی اجازه بگیرد. با این حال، می توانید یک ماکرو بسیار ساده ایجاد کنید که این کار را انجام می دهد. ماکرو زیر به عنوان آرگومان، یک مرجع سلولی و به صورت اختیاری نشانگر داده هایی که می خواهید برگردانده می شود، می گیرد.
Function FontInfo1(Rn As Range, Optional iType As Integer)
If iType = 2 Then
FontInfo1 = Rn.Font.Size
Else
FontInfo1 = Rn.Font.Name
Endif
End Function
شما از تابع با استفاده از فرمولی مانند این در یک سلول استفاده می کنید:
=FontInfo1(A1,1)
پارامتر دوم (در این مورد 1) به این معنی است که شما نام فونت را می خواهید. اگر پارامتر دوم را به 2 تغییر دهید، اندازه فونت باز می گردد. (در واقع می توانید پارامتر دوم را هر چیزی غیر از 2 داشته باشید - یا آن را کاملاً کنار بگذارید - و نام فونت را برمی گرداند.)
اگر می خواهید هر دو مقدار را به طور همزمان برگردانید، می توانید روش کمتر شناخته شده ای را برای برگرداندن آرایه های اطلاعات از یک تابع تعریف شده توسط کاربر اعمال کنید. موارد زیر را امتحان کنید:
Function FontInfo2(c As Range) As Variant
FontInfo2 = Array(c.Font.Name, c.Font.Size)
End Function
دو سلول مجاور افقی (مانند C7:D7) را انتخاب کنید و فرمول زیر را تایپ کنید:
=FontInfo(A1)
از آنجایی که تابع یک آرایه را برمی گرداند، باید با فشار دادن Shift+Ctrl+Enter وارد فرمول را خاتمه دهید . نام فونت در سلول اول (C7) و اندازه فونت در سلول دوم (D7) ظاهر می شود.