ذخیره و انتقال ماکرو ها در اکسل

تا اینجا یاد گرفتیم چگونه میتوان در اکسل ماکرو نویسی کرد، با ضبط ماکرو ها هم به عنوان ساده ترین راه بار ماکرو نویسی در اکسل آشنا شدیم. در این مقاله میخواهیم با نحوه ذخیره و انتقال ماکرو ها در اکسل آشنا شویم.

پس از ایجاد ماژول ها و نوشتن کدها به دو صورت میتوان کدها را ذخیره کرد، حالت اول اینست که ماژول را به صورت یک فایل bas. بر روی سیستم ذخیره نمایید و راه دوم اینست که کدها را به همراه فایل اکسل ذخیره کنیم. در ادامه به بررسی این دو روش خواهیم پرداخت.

ذخیره و انتقال ماکرو ها در اکسل

ذخیره ماژول بر روی سیستم

پس از اتمام کد نویسی یا در خلال کد نویسی به منظور تهیه فایل Backup، میتوانیم ماژول ها را به صورت یک فایل بر روی سیستم ذخیره کنیم، برای انجام اینکار کافیست بر روی نام ماژول در Project Window کلیک راست کنید و از منوی باز شده گزینه ی Export را انتخاب کنیم، با این کار ماژول را در قالب یک فایل با پسوند bas. بر روی مسیر دلخواه خود ذخیره میکنیم.

فایل های bas. مانند فایل های txt. دارای حجم بسیار کم میباشند و محتوای آنها توسط نرم افزار Notepad قابل رویت است، در این حالت میتوان کدها را با حجم بسیار کم ذخیره کرد و  در صورت نیاز مجدداً به راحتی استفاده نمود.

برای وارد کردن فایل های bas. در اکسل تنها کافیست از منوی اصلی ویژوال بیسیک گزینه ی Import File را انتخاب نموده و فایل مورد نظر را در صفحه ی ویژوال بیسیک خود مشاهده کنید.

شکل زیر مسیر Export و Import فایل های bas. را نشان میدهد:

ذخیره و انتقال ماکرو در اکسل

ذخیره فایل های اکسل به همراه ماکرو

روش دوم ذخیره و انتقال ماکرو ها در اکسل به اینصورت میباشد که ماکرو ها به همراه فایل اکسل در بر دارنده ی آنها (Project) یکجا ذخیره میگردند. این حالت برای ماکرو هایی که برای فایل های اکسلی بخصوص نوشته شده اند مناسب میباشد، به عنوان مثال ممکن است یک فایل اکسل مربوط به محاسبات مهندسی دارای کدهای ویژوال بیسیک باشد که برنامه نویس نیاز دارد همواره کدها و فایل اکسل یکجا ذخیره شوند.

برای ذخیره ی ماکرو ها و فایل های اکسل به صورت یک فایل بر روی Office Button (در نسخه ۲۰۰۷) یا بر روی منوی اصلی File کلیک نمایید و گزینه ی Save As را انتخاب کنید، پس از انتخاب محل ذخیره فایل از قسمت Save As Type گزینه ی Excel Macro-Enabled Workbook را انتخاب کنید.

پس از ذخیره ماکرو ها و فایل اکسل با یکدیگر، این فایل با پسوند xlsm. ذخیره میگردد که دقیقاً همانند یک فایل اکسل معمولی عمل مینماید با این تفاوت که فایل مزبور حاوی کدهای ویژوال بیسیک میباشد و شکل آیکون آن کمی با آیکون یک فایل معمولی اکسل متفاوت است.

باز کردن فایل های اکسل حاوی ماکرو

به منظور ایجاد امنیت بیشتر برای سیستم ها و سهولت انتقال ویروس ها و کدهای مخرب از طریق فایل های حاوی ماکرو، اکسل یک سیستم امنیتی برای استفاده از فایل های حاوی ماکرو در نظر گرفته است. اگر کاربر فایل حاوی ماکرو را بر روی سیستم خود باز کند به صورت پیشفرض ماکرو ها غیر فعال میباشند، بدین ترتیب اگر کاربر اقدام به اجرای ماکرو های ذخیره شده در فایل اکسل نماید یا اگر فایل اکسل حاوی کدهای مخربی باشد که قرار است بلافاصله پس از باز شدن فایل اجرا شوند، به صورت اتوماتیک از اجرای آن جلوگیری به عمل خواهد آمد و اجرای آنها منوط به مورد تایید بودن ماکرو ها از منظر کاربر میباشد.

پس از باز کردن فایل اکسل حاوی ماکرو، یک Pop Up برای کاربر نشان داده خواهد شد که مزمون آن غیر فعال بودن ماکروهای فایل باز شده میباشد، میتوانید با کلیک کردن بر رویگزینه Enable Content بر روی این Pop Up ماکرو ها را فعال نمایید.

ذخیره و انتقال ماکرو ها در اکسل

اشتراک گذاری در شبکه های اجتماعی: share on facebook share on google plus share on linkedin

۹ نظر

  1. مهدی

    سلام
    با تشکر از سایت مفید و خوبتون
    سوال داشتم . چه کدی در ماکرو بنویسم که اطلاعات آدرس بار رو کپی کنه ممنون میشم پاسخ بدین

  2. امیر رضا

    سلام اقا حامد خدا قوت . سوالی داشتم خدمت شما و اون اینه که من با vba برنامه نوشتم که فرم هم داره و در بستر اکسل یک سری کار های خاص انجام می ده ولی من می خواستم اون رو به افراد دیگه تو شرکت بدم تا استفاده کنند البته این کار رو با اکسپورت به صورت دستی انجام می دم ..
    اما می خواستم بدونم میشه این فایل ها رو به صورت نصبی به کار بر ها داد (چون این کار برای اونها سخته و بلد نیستند)که فقط با اجرا کردن اون فایل نصبی، نصب بر روی اکسل اونها هم انجام بشه و خودش کار کپی کردن رو انجام بده وخودش فرم من و ماکرو من رو ایمپورت کنه .
    ملاحظه:بابت اجرا شدن این برنامه در اکسل یه ماکرو پرسونال تعریف کردم و فقط توش یک کد نوشتم و اون اینه :userform1.show وقتی کاربر کلید ترکیبی این ماکرو رو میزنه برنامه نشون داده میشه و روش اجرای دیگر اینه که یک شورتکات هم واسش به صورت ایکون در منوهای افیس ادد کردم که از اون طریق هم اجرا بشه

    1. حامد قدیمی

      سلام، فایل اکسل خود را به صورت Macro -Enabled Workbook ذخیره کنید تا تمام کدها و فرم ها به همرا هفایل اکسل ذخیره شوند، هنگام باز کردن فایل اکسل کاربران باید Enable را انتخاب کنند که کده فعال شوند. در این صورت کدها در همه جا قابل استفاده هستند، برای اجرا کدها به صورت اتوماتیک پس از باز شدن فایل اکسل و یا نمایش دستور العمل بلافاصله پس از باز شدن اکسل، در پنرجه کد نویسی Workbook یک کد برای Work Book Open بنویسید.
      موفق باشید.

  3. مهدی آقایی

    سلام و خدا قوت به شما استاد عزیز
    یه سوال راجع به ماکرو داشتم
    به یه دکمه یا شکل در اکسل یک ماکرو رو نسبت دادم ، چطور می تونم ماکروی یک دکمه رو به یک دکمه دیگه انتقال بدم، به طوریکه با فشردن دکمه جدید ، عملیات دکمه اول دقیقا انجام بشه ، با تشکر فراوان از شما

    1. حامد قدیمی

      سلام، به همان صورتی که ماکرو اول را به دکمه اول اختصاص دادید، روی دکمه کلیک راست نمایید و گزینه Assign Macro را انتخاب کنید. البته این در صورتی است که شما یک Form Control داشته باشید. در صورتی که ActiveX Control دارید بر روی Double Click کنید و در پنجره مربوطه کد نویسی نمایید. موفق باشید.

  4. سینا

    با سلام من یه فایل اکسل دارم شامل کد نویسی vba موقع انتقال به کامپیوتر دیگر خیلی از دستورات و نمیشناسه کدی رو هم که برای پروتکت کردن سلولهاست نمیشناسه لطفا راهنمایی بفرمایید

    1. حامد قدیمی

      سلام، موردی که میفرمایید احتمال رخ دادنش بسیار کم هست کدها رو همراه فایل اکسل به صورت .XLSM ذخیره کنید، گاهی در نسخه های متفاوت اکسل ممکن است برخی دستورات نا آشنا باشند که در این صورت با Debug کردن کدها این مورد برطرف میشود، اما اینکه کدها را نشناسد به نظر من ممکن نست. لطفاً مجددا تلاش کنید. موفق باشید.

دیدگاهتان را بنویسید؟