تبدیل اعداد فارسی به انگلیسی و تبدیل اعداد انگلیسی به فارسی در Word با ماکرو (Macro)
نکته: این روش در ورد 2013 آموزش داده شده و عکسبرداری گردیده است.
در این مطلب جامع، قصد دارم تمامی روشهای موجود برای تبدیل اعداد فارسی به انگلیسی و انگلیسی به فارسی را به کمک Macro بنویسم.
در بسیاری از موارد، هنگاهی که نویسندگان یک فایل مقاله و یا یک کتاب را برای ویراستاری به من ارسال میکنند، متوجه شدهام که عدد نویسی آنها اشتباه است. به عنوان مثال در یک مقاله فارسی نوشتن عدد انگلیسی در متن مقاله اشتباه است. باید تمام اعداد فارسی باشند.
اگر تعداد عددها کم باشد، شاید روش دستی، مشکل شما را حل کند. البته من پیشنهاد میکنم که از روشهای اصولی استفاده کنید. زیرا بازنویسی عدد، اگر به صورت دستی انجام شود، احتمال تایپ اشتباه دارد.
اما چه طور اعداد یک مقاله، کتاب یا پایان نامه را فارسی کنیم. یا اگر اعداد در سند ورد فارسی است، آنها را به انگلیسی برگردانیم.
روش دوم: استفاده حرفهای از Word – ساخت Macro فارسی ساز اعداد یا انگلیسی ساز اعداد
تبدیل اعداد فارسی به انگلیسی یا برعکس توسط Macro نرم افزار Word
برای ساخت ماکرو تبدیل اعداد فارسی به انگلیسی از کدهای زیر استفاده کنید.
اگر درباره نحوه ساختن ماکروها در ورد، اطلاعی ندارید، پیشنهاد میکنیم، مطلب آموزش ماکروها و نحوۀ ساخت آنها را مطالعه کنید.
بصورت خلاصه به برگه View مراجعه کنید. دکمه Start Record Macro را فشار دهید و یک نام برای Macro خود انتخاب کنید. مثلا fa2en را برای تبدیل اعداد فارسی به انگلیسی و en2fa را برای تبدیل اعداد انگلیسی به فارسی انتخاب کنید. بعد از Start حالا کافیست بدون هیچ کاری Stop را فشار دهید. وارد بخش ماکروها شوید، نام ماکرو را پیدا کنید و آن را Edit کنید. در محیط VB که باز شده است. کدهای زیر را قرار دهید. اکر کپی کردن کدها برای شما مشکل است. کدها را در یک فایل Text قرارداده ام. از آنجا بردارید.
راهنمایی: کلیدهای میانبر را فراموش نکنید. در برگردان تعداد زیادی عدد به سرعت عمل شما کمک خواهد کرد.
برای دانلود فایل آماده شده dotm به انتهای مطالب مراجعه کنید.
کد ماکرو تبدیل اعداد انگلیسی به فارسی
دانلود کنید: دانلود فایل Text کد ماکرو تبدیل اعداد انگلیسی به فارسی
|
کد ماکرو تبدیل اعداد فارسی به انگلیسی
دانلود کنید: دانلود فایل Text کد ماکرو تبدیل اعداد فارسی به انگلیسی
Sub Fa2En() Dim Ch, Ch2, MyRange, MyNumber As String Dim Dot As Integer Dim IsItNumber As Boolean Dim EmptyRange As Range IsItNumber = True Dot = 0 With Selection.Find Do .ClearFormatting .Execute FindText:="^#", Forward:=True, Wrap:=wdFindAsk Loop While (Selection.LanguageID = 1033 And Selection.Find.Found = True) End With Selection.MoveEnd Unit:=wdCharacter, Count:=-1 Do If Ch = "/" Then Dot = Dot + 1 Selection.MoveEnd Unit:=wdCharacter, Count:=1 Ch2 = ActiveDocument.Range(Start:=Selection.End, End:=Selection.End + 1) If (Ch2 = "1" Or Ch2 = "2" Or Ch2 = "3" Or Ch2 = "4" Or Ch2 = "5" Or Ch2 = "6" Or Ch2 = "7" Or Ch2 = "8" Or Ch2 = "9" Or Ch2 = "0") Then IsItNumber = True Else IsItNumber = False Selection.MoveEnd Unit:=wdCharacter, Count:=-2 End If End If Selection.MoveEnd Unit:=wdCharacter, Count:=1 Ch = ActiveDocument.Range(Start:=Selection.End, End:=Selection.End + 1) Loop While (IsItNumber = "false" Or Ch = "1" Or Ch = "2" Or Ch = "3" Or Ch = "4" Or Ch = "5" Or Ch = "6" Or Ch = "7" Or Ch = "8" Or Ch = "9" Or Ch = "0" Or Ch = "/") MyRange = ActiveDocument.Range(Start:=Selection.Start, End:=Selection.End) MyNumber = MyRange Selection.Delete Application.Keyboard (1033) Selection.LanguageID = 1033 Set EmptyRange = Selection.Range EmptyRange.Start = Selection.Start Selection.TypeText Text:="?" EmptyRange.End = Selection.End If (Dot > 0) Then Spl = Split(MyRange, "/") If (Dot = 1) Then Selection.TypeText Text:=Spl(1) & "." & Spl(0) Else For i = 0 To (Dot - 1) Selection.TypeText Text:=Spl(i) & "-" Next Selection.TypeText Text:=Spl(Dot) End If Else Selection.TypeText Text:=MyNumber End If EmptyRange.Text = "" Application.Keyboard (1065) Selection.LanguageID = 1065 End Sub |
راه حل ساده تر:
کافی است تبدیل خودکار اعداد فارسی به انگلیسی و اعداد انگلیسی به فارسی را دانلود کنید. اعداد خود را داخل این فایل کپی کنید و با کلیدهای میانبر آنها را فارسی یا انگلیسی کنید.
اگر عدد شما فارسی است و میخواهید به انگلیسی تبدیل کنید : Alt + e (کلید آلت را با e) فشار دهید.
اگر عدد شما انگلیسی است و میخواهید به فارسی تبدیل کنید: Alt+f (کلید آلت را با f) فشار دهید.
دیدگاهها