Derek به راهی برای یافتن دفعه بعد که تایپ (نام فونت) تغییر می کند، در یک سند نیاز دارد. به عنوان مثال، اگر نقطه درج در وسط سند باشد، او میخواهد Word به او اطلاع دهد، از همان نقطه شروع، جایی که تغییر بعدی رخ میدهد. درک به این فکر می کند که آیا راهی برای انجام چنین کاری وجود دارد؟
هیچ راهی داخلی برای انجام این کار وجود ندارد، اگرچه ممکن است بتوانید به صورت بصری تشخیص دهید که چه زمانی تایپ فیس تغییر کرده است. من اغلب می توانم با افزایش ضریب بزرگنمایی سند (مثلاً به 200٪ یا 250٪) و سپس اسکن بصری سند برای جستجوی تغییرات ظاهری، متوجه شوم. البته این بستگی به تفاوت بصری بین دو فونت مجاور خواهد داشت.
اگر یک راه حل مبتنی بر کلان را ترجیح می دهید، می توانید راه حلی ایجاد کنید که نام تایپ فیس را در محل نقطه درج فعلی ذخیره کند و سپس هر کاراکتر باقی مانده از سند را طی کند. اگر حروف با نوع اصلی متفاوت است، می توانید به کاربر اطلاع دهید. در اینجا نمونه ای از این ماکروها آورده شده است:
Sub ChangeOfFont()
Dim fntName As String
Dim aRange As Range
Set aRange = Selection.Range
aRange.Collapse Direction:=wdCollapseStart
aRange.MoveEnd Unit:=wdCharacter
fntName = aRange.Font.Name
Do
aRange.MoveEnd Unit:=wdCharacter
aRange.MoveStart Unit:=wdCharacter
Loop Until aRange.Font.Name <> fntName Or _
aRange.Bookmarks.Exists("EndOfDoc")
aRange.Select
If aRange.Bookmarks.Exists("EndOfDoc") Then
MsgBox "End of document"
Else
MsgBox "Font change from " & fntName & " to " & aRange.Font.Name
End If
End Sub
اکثر کارها در حلقه Do انجام می شود، جایی که فونت هر کاراکتر بررسی می شود تا ببینیم آیا تغییر کرده است یا خیر. توجه داشته باشید که حلقه همچنین بررسی می کند که آیا به انتهای سند رسیده است یا خیر، در این مرحله شما می خواهید ماکرو برای توقف