رفع خطای Macro Language Support در Word/Office

رفع خطای Macro Language Support در Word/Office در پلتفرم filekit

رفع خطای Macro Language Support در Word/Office (VBA نصب نیست)

رفع خطا: نیاز به Macro Language Support / Controls در Word

خطا زمانی رخ می‌دهد که فایل Word یا فرآیند شما شامل VBA Macro، قالب‌های macro-enabled، یا کنترل‌هایی مثل ActiveX باشد اما مؤلفه‌های مربوطه هنگام نصب Office انتخاب نشده یا توسط سیاست‌ها غیرفعال شده است.

Word / Office VBA Macros DOCM / DOTM ActiveX / Controls GPO / Trust Center
متن خطا

The function you are attempting to run contains macros or content that requires macro language support. When this software was installed, you (or your administrator) chose not to install support for macros or controls

معنی فنی پیام

Office می‌خواهد VBA Runtime / Macro engine یا کنترل‌ها (مثل ActiveX) را بارگذاری کند، اما این قابلیت در نصب فعلی موجود نیست (Not Installed) یا دسترسی‌اش توسط تنظیمات امنیتی محدود شده است.

علت‌های وقوع (Root Causes)

1) نصب نبودن VBA / Macro Language Support

در نصب سفارشی Office ممکن است گزینه‌های VBA یا Office Shared Features نصب نشده باشند. این حالت در محیط‌های سخت‌گیر (Security Baseline) رایج است.

2) فایل Macro-Enabled است (DOCM/DOTM) یا به Template ماکرو وابسته است

حتی اگر فایل .docx باشد، ممکن است به یک .dotm یا Add-in ماکرو متصل باشد و هنگام اجرا به VBA نیاز پیدا کند.

3) وجود Controls (ActiveX / فرم‌ها) در سند

برخی کنترل‌ها برای اجرا/نمایش صحیح به مؤلفه‌های controls نیاز دارند (و گاهی با سیاست‌های سخت‌گیرانه بلاک می‌شوند).

4) سیاست‌های سازمانی (GPO) یا Trust Center

ممکن است VBA نصب باشد اما اجرای آن توسط Group Policy یا Trust Center غیرفعال شده باشد (به‌خصوص «Block macros from the Internet»).

5) محیط سروری/اتوماسیون و Office کمینه‌نصب

روی سرورها گاهی Office به‌صورت Click-to-Run با ویژگی‌های حداقلی نصب می‌شود یا به علت سیاست‌ها VBA حذف می‌شود.

6) فایل از مسیر شبکه/اینترنت Mark-of-the-Web دارد

اگر فایل از اینترنت یا WebDAV دریافت شده باشد، ممکن است با سیاست‌های جدید Office، ماکروها به‌شدت محدود شوند (حتی اگر VBA نصب باشد).

تشخیص سریع (Troubleshooting Checklist)

  1. پسوند فایل را بررسی کنید: DOCX یا DOCM/DOTM؟
    اگر .docm یا .dotm است، وابستگی به VBA تقریباً قطعی است. اگر .docx است، به Template/Add-inهای بارگذاری‌شده یا کنترل‌ها شک کنید.
  2. در Word مسیر: File → Options → Add-ins
    Add-inهای COM/Templateها را بررسی کنید. گاهی یک Add-in ماکرو باعث فراخوانی VBA می‌شود.
  3. Trust Center و سیاست “Block macros…” را چک کنید
    اگر فایل از WebDAV/اینترنت می‌آید، ممکن است Office آن را «Untrusted» بداند و ماکرو/کنترل‌ها را مسدود کند.
  4. وجود VBA در نصب Office را بررسی کنید (Programs & Features / Modify)
    اگر VBA نصب نباشد، دقیقاً همین پیام نمایش داده می‌شود.

راهکارها (Solutions)

راهکار 1: نصب/فعال‌سازی VBA (Macro Language Support)

  • در ویندوز: Apps & Features یا Programs and Features → Microsoft Office → Change/Modify
  • در حالت Custom/Advanced، گزینه‌های مرتبط با VBA را روی Run from My Computer قرار دهید:
    • Visual Basic for Applications
    • Office Shared Features → VBA (نام دقیق بسته به نسخه متفاوت است)
  • نکته: در Office Click-to-Run ممکن است UI متفاوت باشد و مدیریت با ODT/Configuration انجام شود.

راهکار 2: اگر ماکرو لازم نیست، ماکرو/کنترل‌ها را از فایل حذف کنید

  • سند را به .docx واقعی (بدون macro) تبدیل کنید.
  • Templateهای وابسته (مثل Normal.dotm یا template سفارشی) را بازبینی کنید.
  • ActiveX/Controls را حذف یا با Content Controls استاندارد جایگزین کنید.

راهکار 3: تنظیمات Trust Center / Trusted Locations (با رعایت سیاست امنیتی)

هشدار امنیتی

فعال‌سازی گسترده ماکروها ریسک امنیتی دارد. بهتر است فقط مسیرهای کنترل‌شده (مثلاً share داخلی یا مسیر مشخص WebDAV) را Trusted کنید و امضای دیجیتال ماکروها را الزام کنید.

  • برای اسناد داخلی، از Trusted Locations استفاده کنید.
  • بهتر: ماکروها را کد-ساین کنید و فقط ماکروهای signed را مجاز کنید.
  • اگر فایل “Mark of the Web” دارد، روی همان فایل: Properties → Unblock (در صورت مجاز بودن) بررسی شود.

راهکار 4: بررسی/اصلاح Group Policy

  • سیاست‌های Office مربوط به VBA/Macros را چک کنید (ADM/ADMX Office).
  • سناریوی رایج: Block macros from running in Office files from the Internet
  • اگر WebDAV شما از دید Office «Internet Zone» محسوب می‌شود، باید Zone mapping/Trusted site سیاست‌گذاری شود.

راهکار 5 (برای سرور/اتوماسیون): وابستگی را از Office حذف کنید

Best Practice در اتوماسیون سروری

برای پردازش سمت سرور (مثل Aspose)، بهتر است خروجی وابسته به VBA نباشد. Aspose معمولاً ماکروها را اجرا نمی‌کند (و نباید هم اجرا کند). اگر سند شما برای تولید خروجی به ماکرو متکی است، معماری را بازطراحی کنید: منطق را به سرویس/کد سرور منتقل کنید، نه داخل سند Word.

  • ماکروها را به منطق اپلیکیشن منتقل کنید (API/Service).
  • اگر هدف فقط ذخیره قالب است، از Content Controls/Bookmarks استفاده کنید نه VBA.

کدهای وضعیت و سرنخ‌های مفید

# تشخیص نوع فایل (پسوند)
# .docm / .dotm => Macro-enabled
# .docx        => باید بدون VBA باشد (مگر وابستگی به template/add-in)

# مسیرهای رایج بررسی دستی:
# Word → File → Options → Trust Center → Trust Center Settings → Macro Settings
# Word → File → Options → Add-ins

FAQ

چرا برای فایل .docx هم این پیام می‌آید؟

چون ممکن است سند به یک .dotm وابسته باشد، یا Add-in/Template هنگام باز شدن اجرا شود، یا کنترل‌هایی داشته باشد که به مؤلفه‌های macro/controls نیاز دارند.

بهترین راه امن برای سازمان چیست؟

(۱) VBA را فقط روی سیستم‌هایی که واقعاً نیاز دارند نصب کنید، (۲) اجرای ماکرو را محدود به signed macros کنید، (۳) مسیرهای Trusted را حداقلی و کنترل‌شده نگه دارید، (۴) منطق کسب‌وکار را از سند Word خارج کنید.

SEO Title: رفع خطای Macro Language Support در Word/Office

Meta Description: علت و راهکار خطای requires macro language support: نصب نبودن VBA، تنظیمات Trust Center و GPO، فایل‌های DOCM/DOTM، ActiveX، و چک‌لیست عیب‌یابی.

رفع خطای Macro Language Support در Word/Office

رفع خطای Macro Language Support در Word/Office

رفع خطای Macro Language Support در Word/Office

رفع خطای Macro Language Support در Word/Office

رفع خطای Macro Language Support در Word/Office

رفع خطای Macro Language Support در Word/Office

رفع خطای Macro Language Support در Word/Office

رفع خطای Macro Language Support در Word/Office

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *