چگونه در ورد برنامه ای دائمی بسازیم که اعداد حروف فارسی و یا عربی را به اعداد انگلیسی تبدیل کند
ورد دارای خصوصیت ماکرو است که می تواند اقداماتی را بر روی فایل شما انجام دهد
در قسمت ماکرو شما می توانید انواع و اقسام دستورات VB را بنویسید
نمونه آن برای تبدیل اعداد با حروف فارسی به اعداد انگلیسی است

آموزش ساخت افزونه دائمی ماکرو برای همه فایلهای Word
هدف
در این روش، ماکرو فقط داخل یک فایل ذخیره نمیشود؛
بلکه به صورت دائمی وارد Word میشود.
یعنی:
هر فایل Word که باز کنید
در هر پروژه جدید
بدون نیاز به کپی کردن مجدد کد
ماکرو همیشه در دسترس خواهد بود.
این کار با فایل: Normal.dotm انجام میشود.
فایل Normal.dotm چیست؟
Word تنظیمات دائمی خود را داخل فایلی به نام:
Normal.dotm
ذخیره میکند.
اگر ماکرو را داخل این فایل قرار دهید:
همیشه فعال میماند
در تمام اسناد Word کار میکند
مثل یک افزونه دائمی عمل میکند
مرحله 1 — باز کردن Word
ابتدا Word را باز کنید.
مهم نیست چه فایلی باز باشد.
مرحله 2 — باز کردن محیط VBA
کلیدهای زیر را بزنید:
Alt + F11
محیط برنامهنویسی VBA باز میشود.
مرحله 3 — پیدا کردن Normal
در سمت چپ پنجره، بخشی به نام:
Project Explorer
وجود دارد.
اگر دیده نمیشود:
Ctrl + R
را بزنید.
اکنون چیزی شبیه این میبینید:
Normal
Microsoft Word Objects
Modules
روی:
Normal
کار میکنیم.
مرحله 4 — ساخت Module دائمی
روی:
Normal
راستکلیک کنید.
سپس:
Insert → Module
را انتخاب کنید.
یک صفحه سفید باز میشود.
مرحله 5 — قرار دادن کد
کد زیر را کامل کپی کنید.
تبدیل فونتهای اعداد فارسی به انگلیسی
Sub ConvertPersianNumbersOnly()
Dim rng As Range
Dim i As Integer
Dim PersianNums
Dim EnglishNums
PersianNums = Array(ChrW(&H6F0), ChrW(&H6F1), ChrW(&H6F2), ChrW(&H6F3), ChrW(&H6F4), ChrW(&H6F5), ChrW(&H6F6), ChrW(&H6F7), ChrW(&H6F8), ChrW(&H6F9))
EnglishNums = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
Set rng = ActiveDocument.StoryRanges(wdMainTextStory)
For i = 0 To 9
With rng.Find
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindContinue
.Format = False
.Text = PersianNums(i)
.Replacement.Text = EnglishNums(i)
.Execute Replace:=wdReplaceAll
End With
Next i
MsgBox "Persian numbers converted to English"
End Sub
تبدیل فونتهای اعداد عربی به انگلیسی
Sub ConvertArabicNumbersOnly()
Dim rng As Range
Dim i As Integer
Dim ArabicNums
Dim EnglishNums
ArabicNums = Array(ChrW(&H660), ChrW(&H661), ChrW(&H662), ChrW(&H663), ChrW(&H664), ChrW(&H665), ChrW(&H666), ChrW(&H667), ChrW(&H668), ChrW(&H669))
EnglishNums = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
Set rng = ActiveDocument.StoryRanges(wdMainTextStory)
For i = 0 To 9
With rng.Find
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindContinue
.Format = False
.Text = ArabicNums(i)
.Replacement.Text = EnglishNums(i)
.Execute Replace:=wdReplaceAll
End With
Next i
MsgBox "Arabic numbers converted to English"
End Sub
تبدیل همزمان فونتهای اعداد فارسی و عربی به انگلیسی
Sub ConvertAllARBICPERSIANNumbersToEnglish()
Dim rng As Range
Dim i As Integer
Dim PersianNums
Dim ArabicNums
Dim EnglishNums
PersianNums = Array(ChrW(&H6F0), ChrW(&H6F1), ChrW(&H6F2), ChrW(&H6F3), ChrW(&H6F4), ChrW(&H6F5), ChrW(&H6F6), ChrW(&H6F7), ChrW(&H6F8), ChrW(&H6F9))
ArabicNums = Array(ChrW(&H660), ChrW(&H661), ChrW(&H662), ChrW(&H663), ChrW(&H664), ChrW(&H665), ChrW(&H666), ChrW(&H667), ChrW(&H668), ChrW(&H669))
EnglishNums = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
Set rng = ActiveDocument.StoryRanges(wdMainTextStory)
For i = 0 To 9
With rng.Find
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindContinue
.Format = False
.Text = PersianNums(i)
.Replacement.Text = EnglishNums(i)
.Execute Replace:=wdReplaceAll
.Text = ArabicNums(i)
.Replacement.Text = EnglishNums(i)
.Execute Replace:=wdReplaceAll
End With
Next i
MsgBox "Numbers converted safely"
End Sub
مرحله 6 — ذخیره دائمی
اکنون:
Ctrl + S
را بزنید.
Word فایل Normal.dotm را ذخیره میکند.
این مرحله بسیار مهم است.
مرحله 7 — بستن VBA
کلید:
Alt + Q
را بزنید.
به Word برمیگردید.
مرحله 8 — اجرای ماکرو در همه فایلها
از حالا:
در هر فایل Word
میتوانید ماکرو را اجرا کنید.
روش اجرا
کلید:
Alt + F8
را بزنید.
سپس:
PersianToEnglishNumbers
را انتخاب کنید.
روی:
Run
کلیک کنید.
ساخت کلید میانبر دائمی
برای اجرای سریعتر:
File → Options → Customize Ribbon
پایین پنجره:
Keyboard Shortcuts → Customize
سپس:
Categories → Macros
ماکرو:
PersianToEnglishNumbers
را انتخاب کنید.
در قسمت:
Press new shortcut key
مثلاً بزنید:
Ctrl + Shift + E
سپس:
Assign
و بعد:
OK
نتیجه
اکنون:
ماکرو دائمی شده است
در همه فایلهای Word کار میکند
نیاز به کپی مجدد ندارد
با کلید میانبر اجرا میشود
مثل افزونه داخلی Word عمل میکند
حذف افزونه در آینده
اگر خواستید حذفش کنید:
Alt + F11
سپس داخل:
Normal → Modules
ماژول را حذف کنید.
بعد:
Ctrl + S
بزنید.
ماکرو برای همیشه حذف میشود.
این مطلب با بهره وری از چت جی بی تی نوشته شده است
تذکر : نقل از رسانه های دیگر ، به معنای تایید محتوای آن ها نیست ، صرفا جهت مستند بودن مطالب است
برخی از تصاویر در کروم یا فایر فاکس دیده نمی شود ، اگر تصویری را ندیدید ، بروزر دیگر را آزمایش کنید + نوشته شده در جمعه هشتم خرداد ۱۴۰۵ ساعت 18:16 توسط مدیر |