تبدیل اعداد انگلیسی به فارسی و بالعکس در ورد
تبدیل اعداد انگلیسی به فارسی و بالعکس در ورد
در تهیه بسیاری از گزارشات در نرمافزار ورد نیاز است تا اعداد بصورت فارسی نمایش داده شوند. اگرچه روشهای سریعی برای انجام اینکار وجود دارد ولی این روشها موقتی میباشند و با توجه به تنظیمات متفاوت زبان در رایانههای مختلف، اعداد بطور دائمی بصورت فارسی نمایش داده نمیشوند. در ادامه مطلب با ما همراه باشید تا با نحوه انجام این کار بصورت دائمی و با امکان نمایش صحیح در تمام رایانهها آشنا شوید.
اگر در بخش Numeral تنظیمات نرم افزار Word، گزینه Context را انتخاب کنید اعدادی را که به فارسی تایپ میکنید و یا قبلا تایپ شده اند، بصورت فارسی و اعدادی را که به انگلیسی تایپ میکنید و یا قبلا تایپ شدهاند، بصورت انگلیسی نمایش داده میشوند و یا اگر گزینه Arabic یا System را انتخاب کنید تمام اعداد (چه فارسی و چه انگلیسی) بصورت انگلیسی نشان داده میشوند و اگر گزینه Hindi را انتخاب کنید، تمام اعداد (چه فارسی و چه انگلیسی) بصورت فارسی نشان داده میشوند.
در مطلب حاضر، هدف ما این نیست که صرفا نحوه نمایش اعداد را در یک سیستم تغییر دهیم بلکه هدف این است که اعداد نوشته شدهی انگلیسی را به طور دائمی به فارسی تبدیل کنیم و یا بالعکس، چون اگر صرفا نحوه نمایش را تغییر دهیم در سیستم دیگر با تنظیمات دیگری اعداد بصورت متفاوت نمایش داده میشوند.
روش اول: با استفاده از قابلیت جستجو و جایگزینی پیشرفتهی نرم افزار Word
در نرمافزار Word، برای تبدیل اعداد انگلیسی به فارسی و بالعکس از قابلیت جستجو و جایگزینی پیشرفتهی نرم افزار Word استفاده میکنیم.
۱- تبدیل اعداد انگلیسی به فارسی:
در نرمافزار ورد با فشار دادن کلیدهای Ctrl+H، کادر Find and Replace با تب فعال Replace باز میشود. برای جستجوی اعداد ابتدا در قسمت Find What کد #^ را تایپ کنید. سپس در قسمت Replace With کلیک کنید و از قسمت Format گزینه Language را انتخاب کنید. در پنجره Replace Language زبان Persian یا Farsi را انتخاب کنید و روی Ok کلیک کنید. اگر فونت خاصی هم مدنظرتان است از قسمت Format گزینه Font را انتخاب کنید و در قسمت Complex Script فونت را انتخاب نمایید و سپس و روی Ok کلیک کنید. در پایان روی گزینه Replace (اگر میخواهید بصورت موردی چند عدد را تبدیل کنید) یا Replace All (اگر میخواهید همه اعداد را تبدیل کنید) کلیک کنید تا فرآیند جایگزینی انجام شود.
🔵 تبدیل نقطه به ممیز در اعداد اعشاری:
با استفاده از روش فوق، امکان تبدیل اعداد انگلیسی به فارسی و بالعکس فراهم میشود اما آن چیزی که در حین این تبدیل، بسیار اهمیت دارد تغییر نماد جداکننده عدد اعشاری از عدد صحیح میباشد که در زبان فارسی ممیز () و در زبان انگلیسی نقطه (.) است. در حین این تغییر یا به عبارتی جایگزینی، بهتر است از علامت ممیز فارسی () استفاده کرد نه از علامت اسلش (/).
علامت ممیز () در صفحهکلید استاندارد تازهٔ فارسی بر اساس استاندارد شمارهٔ ۹۱۷۴ ماتصا، با کلیدهای Shift + 3 تایپ میشود. پس از نصب صفحه کلید استاندارد اگر این شرتکات عمل نمیکند میتوانید این علامت را با وارد کردن کد یونیکد آن یعنی 066B در قسمت Symbol پیدا کنید . بنابراین کافیست مطابق شکل زیر نقطه (.) را با ممیز فارسی () جایگزین کرد. اگر دقت کنید مشاهده میکنید که هنگام تایپ در قسمت Replace With، ظاهرا علامت ویرگول لاتین (,) درج میشود اما نگران نباشید پس از جایگزینی در متن، علامت نمایش داده میشود. البته دقت کنید که برای مشاهده این علامت، باید صفحه کلید استاندارد را نصب کرده باشید.
اگر به هر دلیلی نتوانستید ممیز فارسی را پیدا کنید و میخواهید از علامت اسلش (/) استفاده کنید باید دقت کنید که برای جایگزینی نقطه (.) با اسلش (/) یک مشکل بزرگ وجود دارد.
مشکل این هست که همزمان با جایگزینی نقطه با ممیز مشاهده خواهید کرد که جای ارقام صحیح و اعشاری عدد مورد نظر عوض میشود (اینکار را انجام دهید تا نتیجه را ببینید). ضمنا حتما متوجه شدهاید که این مشکل در هنگام تایپ نیز وجود دارد. وقتی از اسلش استفاده میکنید، جای قسمت اعشاری و صحیح جابجا میشود و شما باید اول اعشاری را تایپ کنید و بعد قسمت صحیح را (یعنی درست برعکس). این مشکل در هنگام استفاده از ممیز فارسی () وجود ندارد. بنابراین باید کاری کرد که هم نقطه با ممیز جایگزین شود و هم مشکل عوض شدن حل شود. در ضمن عدد هم فارسی شود.
------------------------------------------------------------------------------------------------------
۲- تبدیل اعداد فارسی به انگلیسی:
روش کار مشابه روش ارائه شده برای حالت ۱ یعنی تبدیل اعداد انگلیسی به فارسی است تنها باید در پنجره Replace Language زبان English را انتخاب کنید و روی Ok کلیک کنید.
🔵 تبدیل ممیز به نقطه در اعداد اعشاری:
بعد از انگلیسی کردن اعداد فارسی برای تبدیل ممیز به نقطه در اعداد اعشاری، اگر ممیز بکار رفته ممیز فارسی () باشد و کجخط (اسلش /) نباشد کافیست با استفاده از قابلیت جستجو و جایگزینی، ممیز فارسی را با نقطه جایگزین کرد اما اگر از اسلش استفاده شده باشد باید در قسمتFind What عبارت زیر را تایپ کنید.
([0-9]{1,})/([0-9]{1,})
سپس عبارت زیر را قسمت Replace With تایپ کنید.
\2.\1
در پنجره Replace Language زبان English را انتخاب کنید و روی Ok کلیک کنید. در پایان روی گزینه Replace یا Replace All کلیک کنید تا فرآیند جایگزینی انجام شود.
روش دوم: ماکرونویسی
مراحل کار:
۱- در ورد ۲۰۰۳، از منوی Tools بر روی دکمه Macro و از آنجا Record New Macro را بزنید. به جای این مراحل میتوانید به ترتیب کلیدهای Alt+T و M و R را تایپ کنید.
در نسخههای ورد ۲۰۱۰ به بعد به ترتیب کلیدهای Alt+T و M و R را تایپ کنید یا در ورد ۲۰۰۷ از تب ،View گروه Macros، گزینه Record Macros را انتخاب کنید.
با این کار، کادر Record Macro باز میشود.
۲- در قسمت Macro Name عبارت En2Fa را تایپ کنید.
۳- بر روی شکل صفحه کلید کلیک کنید یا کلیدهای Alt+K را فشار دهید. کادر Customize Keyboard باز میشود.
۴- یک ترکیب از صفحه کلید برای ایجاد میانبر در قسمت Press new shortcut key فشار دهید. مثلاً Alt+F. سپس دکمه Assign را بزنید و Close کنید.
۵- از منوی View گروه Macros، بر روی دکمه Stop Recording کلیک کنید یا از کلیدهای Alt+T و M و R استفاده کنید.
۶- کلیدهای Alt+F8 را فشار دهید تا کادر ماکروها باز شود. ماکروی En2Fa را پیدا نموده و روی آن کلیک کنید. دکمه Edit را فشار دهید تا وارد محیط Visual Basic شوید.
۷- تمام عبارتهای بین Sub En2Fa() و End sub را پاک کنید و به جای آنها، کدهای زیر را عیناً بین این دو عبارت کپی و پیست کنید.
Dim Ch, Ch2, MyRange, MyNumber As String
'pctarfand.ir & tarfandha.blog.ir'
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 = 1065 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 = "." Or Ch = ",")
MyRange = ActiveDocument.Range(Start:=Selection.Start, End:=Selection.End)
MyNumber = MyRange
Selection.Delete
Application.Keyboard (1065)
Selection.LanguageID = 1065
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 (1033)
Selection.LanguageID = 1033
۸- کلیدهای Ctrl+S را بفشارید تا کد ماکرو ذخیره شود. حال پنجره Microsoft Visual Basic را ببندید.
۹- مراحل درست کردن ماکرو تمام شد. اکنون اگر در محیط ورد کلیدهای Alt+F را بزنید، نرمافزار ورد اولین عدد انگلیسی فایلتان را پیدا میکند، پاک میکند و آن را به فارسی تبدیل میکند.
توجه: اگر در فایل وردتان از Fieldهای خودکار استفاده کردهاید از این برنامه برای فارسی کردن آنها استفاده نکنید.
🔵 تبدیل اعداد فارسی به انگلیسی (اعشاری و صحیح):
کد زیر مشابه کد فوق است البته با کمی تغییر که خودم انجام دادم تا بتوان اعداد صحیح و اعشاری فارسی را به انگلیسی تبدیل کرد.
مراحل کار:
۱- در ورد ۲۰۰۳، از منوی Tools بر روی دکمه Macro و از آنجا Record New Macro را بزنید. به جای این مراحل میتوانید به ترتیب کلیدهای Alt+T و M و R را تایپ کنید.
در نسخههای ورد ۲۰۱۰ به بعد به ترتیب کلیدهای Alt+T و M و R را تایپ کنید یا در ورد ۲۰۰۷ از تب ،View گروه Macros، گزینه Record Macros را انتخاب کنید.
با این کار، کادر Record Macro باز میشود.
۲- در قسمت Macro Name عبارت Fa2En را تایپ کنید.
۳- بر روی شکل صفحه کلید کلیک کنید یا کلیدهای Alt+K را فشار دهید. کادر Customize Keyboard باز میشود.
۴- یک ترکیب از صفحه کلید برای ایجاد shortcut در قسمت Press new shortcut key فشار دهید. مثلاً Alt+E. سپس دکمه Assign را بزنید و Close کنید.
۵- از منوی View گروه Macros، بر روی دکمه Stop Recording کلیک کنید یا از کلیدهای Alt+T و M و R استفاده کنید.
۶- کلیدهای Alt+F8 را فشار دهید تا کادر ماکروها باز شود. ماکروی Fa2En را پیدا نموده و روی آن کلیک کنید. دکمه Edit را فشار دهید تا وارد محیط Visual Basic شوید.
۷- تمام عبارتهای بین Sub Fa2En() و End sub را پاک کنید و به جای آنها، کدهای زیر را عیناً بین این دو عبارت کپی و پیست کنید.
Dim Ch, Ch2, MyRange, MyNumber As String
'pctarfand.ir & tarfandha.blog.ir'
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
۸- کلیدهای Ctrl+S را بفشارید تا کد ماکرو ذخیره شود. حال پنجره Microsoft Visual Basic را ببندید.
۹- مراحل درست کردن ماکرو تمام شد. اکنون اگر در محیط ورد کلیدهای Alt+E را بزنید، نرمافزار ورد اولین عدد فارسی فایلتان را پیدا میکند، پاک میکند و آن را به انگلیسی تایپ میکند.
توجه: اگر در فایل وردتان از Fieldهای اتوماتیک استفاده کردهاید از این برنامه برای انگلیسی کردن آنها استفاده نکنید.