ورد دارای خصوصیت ماکرو است که می تواند اقداماتی را بر روی فایل شما انجام دهد

در قسمت ماکرو شما می توانید انواع و اقسام دستورات VB را بنویسید

نمونه آن برای تبدیل اعداد با حروف فارسی به اعداد انگلیسی است

Tìm hiểu chức năng chính của Microsoft Word là gì

آموزش ساخت افزونه دائمی ماکرو برای همه فایل‌های 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

بزنید.

ماکرو برای همیشه حذف می‌شود.

این مطلب با بهره وری از چت جی بی تی نوشته شده است

https://chatgpt.com/c/6a19945b-6628-83eb-8eb9-93972d5398a2