تبدیل اعداد انگلیسی به فارسی و بالعکس در ورد
در تهیه بسیاری از گزارشات در نرمافزار ورد نیاز است تا اعداد بصورت فارسی نمایش داده شوند. اگرچه روشهای سریعی برای انجام اینکار وجود دارد ولی این روشها موقتی میباشند و با توجه به تنظیمات متفاوت زبان در رایانههای مختلف، اعداد بطور دائمی بصورت فارسی نمایش داده نمیشوند. در ادامه مطلب با ما همراه باشید تا با نحوه انجام این کار بصورت دائمی و با امکان نمایش صحیح در تمام رایانهها آشنا شوید.
یکی از روشهای نمایش همه اعداد بصورت فارسی در Word استفاده از روشی است که در مطلبی تحت عنوان “نمایش اعداد بصورت فارسی در نرمافزار Word” آموزش داده شده است. در این مطلب اشاره شده است که اگر در بخش Numeral تنظیمات نرم افزار Word، گزینه Context را انتخاب کنید اعدادی را که به فارسی تایپ میکنید و یا قبلا تایپ شده اند، بصورت فارسی و اعدادی را که به انگلیسی تایپ میکنید و یا قبلا تایپ شدهاند، بصورت انگلیسی نمایش داده میشوند و یا اگر گزینه Arabic یا System را انتخاب کنید تمام اعداد (چه فارسی و چه انگلیسی) بصورت انگلیسی نشان داده میشوند و اگر گزینه Hindi را انتخاب کنید، تمام اعداد (چه فارسی و چه انگلیسی) بصورت فارسی نشان داده میشوند.
اما در مطلب حاضر، هدف ما این نیست که صرفا نحوه نمایش اعداد را در یک سیستم تغییر دهیم بلکه هدف این است که اعداد نوشته شدهی انگلیسی را به طور دائمی به فارسی تبدیل کنیم و یا بالعکس، چون اگر صرفا نحوه نمایش را تغییر دهیم در سیستم دیگر با تنظیمات دیگری اعداد بصورت متفاوت نمایش داده میشوند.
روش اول: با استفاده از قابلیت جستجو و جایگزینی پیشرفتهی نرم افزار Word
در نرمافزار 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 تایپ میشود. پس از نصب صفحه کلید استاندارد اگر این شرتکات عمل نمیکند میتوانید این علامت را با وارد کردن کد یونیکد آن یعنی ۰۶۶B در قسمت Symbol پیدا کنید و با استفاده از این راهنما، مشابه نیمفاصله برای ممیز فارسی نیز شرتکات تعیین کنید. بنابراین کافیست مطابق شکل زیر نقطه (.) را با ممیز فارسی () جایگزین کرد. اگر دقت کنید مشاهده میکنید که هنگام تایپ در قسمت Replace With، ظاهرا علامت ویرگول لاتین (,) درج میشود اما نگران نباشید پس از جایگزینی در متن، علامت نمایش داده میشود. البته دقت کنید که برای مشاهده این علامت، باید صفحه کلید استاندارد را نصب کرده باشید.
اگر به هر دلیلی نتوانستید ممیز فارسی را پیدا کنید و میخواهید از علامت اسلش (/) استفاده کنید باید دقت کنید که برای جایگزینی نقطه (.) با اسلش (/) یک مشکل بزرگ وجود دارد.
مشکل این هست که همزمان با جایگزینی نقطه با ممیز مشاهده خواهید کرد که جای ارقام صحیح و اعشاری عدد مورد نظر عوض میشود (اینکار را انجام دهید تا نتیجه را ببینید). ضمنا حتما متوجه شدهاید که این مشکل در هنگام تایپ نیز وجود دارد. وقتی از اسلش استفاده میکنید، جای قسمت اعشاری و صحیح جابجا میشود و شما باید اول اعشاری را تایپ کنید و بعد قسمت صحیح را (یعنی درست برعکس). این مشکل در هنگام استفاده از ممیز فارسی () وجود ندارد. بنابراین باید کاری کرد که هم نقطه با ممیز جایگزین شود و هم مشکل عوض شدن حل شود. در ضمن عدد هم فارسی شود. جهت حل این مشکل به مطلبی با عنوان عوض کردن جای ارقام صحیح و اعشاری یک عدد در ورد مراجعه کنید.
——————————————————————————————————
۲- تبدیل اعداد فارسی به انگلیسی:
روش کار مشابه روش ارائه شده برای حالت ۱ یعنی تبدیل اعداد انگلیسی به فارسی است تنها باید در پنجره Replace Language زبان English را انتخاب کنید و روی Ok کلیک کنید.
? تبدیل ممیز به نقطه در اعداد اعشاری:
بعد از انگلیسی کردن اعداد فارسی برای تبدیل ممیز به نقطه در اعداد اعشاری، اگر ممیز بکار رفته ممیز فارسی () باشد و کجخط (اسلش /) نباشد کافیست با استفاده از قابلیت جستجو و جایگزینی، ممیز فارسی را با نقطه جایگزین کرد اما اگر از اسلش استفاده شده باشد باید از روش گفته شده در مطلب عوض کردن جای ارقام صحیح و اعشاری یک عدد در Word استفاده کرد با این تفاوت که در قسمت Find Whatعبارت زیر را تایپ کنید.
([۰-۹]{۱,})/([۰-۹]{۱,})
سپس عبارت زیر را قسمت Replace With تایپ کنید.
\۲٫\۱
در پنجره 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های اتوماتیک استفاده کردهاید از این برنامه برای انگلیسی کردن آنها استفاده نکنید.
روش سوم: افزونه رایگان ویراستیار
قبلا در مطلبی تحت عنوان “با ویراستیار، متون فارسی را درست و صحیح تایپ کنیم.” این افزونه را معرفی کردیم که یکی از قابلیتهای آن تبدیل اعداد انگلیسی به فارسی و بالعکس است اما متاسفانه دارای ایراداتی است.
۱- اگر چه وقتی اعداد اعشاری را از انگلیسی به فارسی تبدیل میکند به ظاهر نتیجه خوبی ارائه میشود ولی پس از تغییر فونت مشاهده میشود که علامت “/” به علامت “,” تغییر مییابد. بنابراین برای نمایش علامت “/”، فونت را نباید تغییر داد و یا باید از فونتهای انگلیسی استفاده کرد.
۲- در حالت برعکس یعنی تبدیل فارسی به انگلیسی، نرم افزار تبدیلی انجام نمیدهد و یا اگر انجام دهد بصورت ناقص انجام میشود.
سلام، خدا پدر و مادرت رو بیامرزد. ممنون