اصلاح نیمفاصلهها در کل متن با یک کلیک(ویژه پایان نامه، کتاب، مقاله)
بسیاری از نوبسنده ها در موضوع نیم فاصله ها مشکلات بسیار زیادی دارند و بعضی مجبورند به صورت تک به تک نیم فاصله ها را اصلاح نمایند. این موضوع مشکلات بسیاری همچنین در بحث ویراستاری ایجاد میکنند چرا که با توجه به تفاوت صفحه آرایی و ویراستاری، بسیاری از اساتیتد علاوه بر صفحه آرایی پایان نامه ویراستاری پایان نامه را نیز مد نظر قرار میدهند.
روش های بسیاری برای درج نیم فاصله بین کلمات و حروف اضافه و همیچنین واژگان مرکب وجود دارد. جدول زیر کاربرد نیم فاصله در زبا فارسی را به خوبی نشان میدهد:
| موضوع | قانون کلی | مثال صحیح ✅ | مثال اشتباه ❌ |
|---|---|---|---|
| نشانه جمع «ها» | همیشه جدا میشود | کتابها، کوهها | کتابها، کوه ها |
| افعال (می/نمی) | همیشه جدا میشود | میروم، نمیآید | میروم، نمی آید |
| کلمات مرکب | ترکیب دو کلمه مستقل | دانشآموز، دستکم | دانش آموز، دستکم |
| صفتها (تر/ترین) | بهتر است جدا باشد | زیباتر، گرمترین | زیباترین، گرمترین |
| پیشوند «هم» | به معنای اشتراک | همکلاسی، همرزم | همکلاسی، هم رزم |
| کلمات ختم به «ه» | هنگام گرفتن پسوند | خانهای، رفتهام | خانه ای، رفتام |
همانگونه که در جدول بالا مشخص است، بسیاری از واژگان نیازمند درج صحیح نیم فاصله هستند و اصلاح تک به تک آن ها امری بسیار طاقت فرسا و زمان بر است.
در این مقاله از وبسایت دیزاین داک، یک راه حل کاربردی و بسیار دقیق را ارائه دادیم که بسیاری از موارد را اصلاح کند. در ادامه با ما همراه باشید.
فهرست مطالب
ماکرو اصلاح نیم فاصله در ورد
آموزش خودکارسازی اصلاح نیمفاصله در ورد (VBA Macro)
رعایت نیمفاصله در متون فارسی، مرز بین یک متن معمولی و یک متن حرفهای و استاندارد است. اما اصلاح دستی تکتک کلمات (مانند «میشود»، «کتابها» و «رفتهام») در مقالات طولانی، کاری زمانبر و خستهکننده است.
در این راهنما، یک قطعه کد هوشمند (ماکرو) را در اختیار شما قرار میدهیم که با یک کلیک، قوانین اصلی دستور خط فارسی را روی کل سند اعمال میکند.
کد ماکروی اصلاحگر هوشمند
کد زیر بر اساس الگوریتمهای جایگزینی (RegEx) طراحی شده تا بدون آسیب زدن به ساختار متن، موارد دستوری را اصلاح کند:
Sub FixPersianZWNJ_Advanced()
' Macro designed for Professional Persian Editing
' Covers: Verbs (Mi/Nemi), Plurals (Ha), Suffixes (Tar/Tarin/Ye), and Units
Dim ZWNJ As String
ZWNJ = ChrW(8204) ' Zero-width non-joiner character
Application.ScreenUpdating = False
' ۱. اصلاح پیشوندهای فعلی (می/نمی)
Call RegexReplace("(<[نم]ی) ", "\۱" & ZWNJ) ' 2. اصلاح نشانه جمع (ها/های) ' با شرط عدم اتصال به علائم نگارشی Call RegexReplace("([! ]) (ها)([ .،:؛?!])", "\۱" & ZWNJ & "\2\3") Call RegexReplace("([! ]) (های)([ .،:؛?!])", "\۱" & ZWNJ & "\2\3") ' 3. اصلاح پسوندهای تفضیلی (تر/ترین) Call RegexReplace("([! ]) (تر)([ .،:؛?!])", "\۱" & ZWNJ & "\2\3") Call RegexReplace("([! ]) (ترین)([ .،:؛?!])", "\۱" & ZWNJ & "\2\3") ' 4. شناسه افعال و ی نکره (پس از ه) ' مثال: رفته ام -> رفتهام | خانه ای -> خانهای
Call RegexReplace("(ه) (ا[می][tdn]?)", "\1" & ZWNJ & "\2")
Call RegexReplace("(ه) (ای)([ .،:؛?!])", "\۱" & ZWNJ & "\2\3")
' ۵. استانداردسازی فاصله اعداد و واحدها
' مثال: ۱۰۰ تومان -> 100تومان (با نیمفاصله)
Call RegexReplace("([0-9]) (تومان|ریال|دلار|یورو)", "\۱" & ZWNJ & "\2")
Call RegexReplace("([0-9]) (گرم|کیلو|متر|سانت|میلی)", "\۱" & ZWNJ & "\2")
Call RegexReplace("([0-9]) (سال|نفر|عدد|درصد|بار)", "\۱" & ZWNJ & "\2")
Application.ScreenUpdating = True
MsgBox "اصلاحات ساختاری و دستوری با موفقیت انجام شد.", vbInformation, "تکمیل عملیات"
End Sub
' تابع کمکی جستجو و جایگزینی
Sub RegexReplace(FindPattern As String, ReplacePattern As String)
Dim MyRange As Range
Set MyRange = ActiveDocument.Content
With MyRange.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = FindPattern
.Replacement.Text = ReplacePattern
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
End Sub
نحوه استفاده از کد
- در محیط نرمافزار Word، کلیدهای Alt + F11 را فشار دهید.
- از منوی Insert گزینه Module را انتخاب کنید.
- کد بالا را کپی کرده و در پنجره باز شده جایگذاری (Paste) کنید.
- پنجره را ببندید. حالا با فشردن Alt + F8 و انتخاب نام ماکرو، اصلاحات انجام میشود.
💡 دامنه عملکرد و نظارت ویراستار
این ابزار هوشمند برای اصلاح قواعد ساختاری و دستوری (افعال، جمعها، پسوندها) طراحی شده است که از قوانین ثابت پیروی میکنند.
با توجه به اینکه تشخیص کلمات مرکب (مانند «راهحل»، «گفتوجو») و واژههای دوپهلو (مانند پیشوند «هم» در «همکلاسی» در مقابل کلمه مستقل «هم») نیازمند درک معنایی جمله است، پیشنهاد میشود پس از اجرای ماکرو، یک مرور سریع برای این کلمات خاص داشته باشید تا ظرافتهای معنایی متن حفظ شود.
با استفاده از این ماکرو، حدود ۸۰ تا ۹۰ درصد زمان ویرایش فنی شما صرفهجویی خواهد شد.
سوالات متداول کاربران
چگونه نیمفاصلهها را در ورد به صورت خودکار اصلاح کنیم؟
برای این کار نیازی به نصب نرمافزار اضافی نیست. با استفاده از قابلیت «ماکرو» (Macro) در ورد و یک قطعه کد کوتاه VBA که در این مقاله قرار دادهایم، میتوانید تمام نیمفاصلههای مربوط به «می»، «ها» و «تر» را در چند ثانیه شناسایی و اصلاح کنید.
کد ماکرو برای اصلاح نیمفاصله در ورد را کجا وارد کنیم؟
کافیست در محیط ورد کلیدهای Alt + F11 را فشار دهید تا ویرایشگر باز شود. سپس از منوی Insert گزینه Module را زده و کد ارائه شده در این صفحه را آنجا کپی کنید. برای اجرا نیز از کلید Alt+F8 استفاده کنید.
آیا این ماکرو کلمات مرکب (مثل راهحل) را هم اصلاح میکند؟
خیر، این ماکرو روی قواعد ساختاری ثابت (مثل افعال و پسوندها) تمرکز دارد. کلمات مرکب خاص به دلیل وابستگی به معنای جمله، باید توسط ویراستار یا افزونههایی مثل «ویراستیار» بررسی شوند تا اشتباهی رخ ندهد.
چرا استفاده از نیمفاصله در مقالات و پایاننامهها ضروری است؟
استفاده از نیمفاصله علاوه بر زیبایی بصری متن، باعث میشود کلمات طولانی در انتهای سطر شکسته نشوند (مثلاً «می» در یک خط و «رود» در خط بعدی قرار نگیرد) و همچنین خوانایی متن برای کاربر افزایش یابد.
