نحوه ذخیره ماکرو در اکسل و انتشار آن

نحوه ذخیره سازی و انتشار ماکرو در اکسل

نحوه ذخیره ماکرو در اکسل و انتشار آن

در نوشته قبلی با نحوه ایجاد ماکرو در اکسل آشنا شدیم. حالا میخوایم ببینیم زمانی که در نرم افزار اکسل ماکرو یا کد VBA خودمون رو مینویسیم چطور باید فایلمون رو ذخیره کنیم. همینطور میبینیم که اگر بخوایم ماکرومون رو به کامپیوتر دیگه ای انتقال بدیم تا اونجا هم بتونیم از ماکروی اکسلی که نوشتیم استفاده کنیم چطور باید اینکار رو انجام بدیم. خب همونطور که میدونید فرمت پیش فرض نرم افزار اکسل برای ذخیره ورکبوک ها در نسخه های قدیمی تر XLS و در نسخه های جدیدتر XLSX هست. این فرمت ها از ذخیره سازی ماکرو پشتیبانی نمیکنند به این معنی که اگر شما کد VBA یا ماکرویی رو در فایل اکسل خودتون بنویسید و بعد اون رو با فرمت XLSX ذخیره کنید تمام کدهای VBA که ایجاد کردید از بین میره و پس از اینکه فایلتون رو مجددا باز کنید اثری از کدهایی که نوشتید دیده نخواهد شد.

در اکسل برای ذخیره فایل هایی که دارای کد VBA و ماکرو هستند میتونیم از دو فرمت XLSM و XLSB استفاده کنیم. برای اینکار کافیه مثل تصویر زیر در پنجره SAVE AS اکسل یکی از این دو فرمت رو برای ذخیره ماکرو انتخاب کنیم. برای آشنایی با تفاوتی که این دو فرمت با هم دارند میتونید این مطلب رو مطالعه کنید:

نحوه ذخیره سازی و انتشار ماکرو در اکسل

 

زمانی که ما فایل اکسل خودمون رو با فرمت XSM یا XLSB ذخیره میکنیم ماکروها و کدهای VBA ما هم در فایلمون ذخیره میشه و زمانی که این فایل رو به سیستم دیگه ای منتقل کنیم میتونیم از کدهایی که نوشتیم استفاده کنیم.

حالا فرض کنید بخوایم کدی رو بنویسیم که بتونیم اون رو به سیستم دیگه ای انتقال بدیم و در تمام فایل های اکسلی که ایجاد میکنیم (نه فقط فایل XLSM که ذخیره کردیم) از اون کد استفاده کنیم. به عنوان مثال بخوایم یه تابع دلخواهی بنویسیم که بتونیم از اون در فرمول نویسی های مون در تمام فایل های اکسل استفاده کنیم. برای اینکار میتونیم از فرمت XLAM اکسل استفاده کنیم که برای تهیه Add-In ها در اکسل استفاده میشه. این فرمت در واقع بسیار شبیه فرمت XLSM هست با یکسری تفاوت های جزئی. برای استفاده از این فرمت ابتدا باید فایل خودتون رو در پنجره SAVE AS اکسل با فرمت XLAM ذخیره کنید و اون رو به سیستم موردنظرتون انتقال بدید. حالا کافیه این فایل رو در نرم افزار اکسل به صورت یک Add-In اضافه کنید. برای اینکار مثل تصویر زیر در پنجره تنظیمات اکسل وارد بخش Add-Ins میشیم و در قسمت پایین پس از انتخاب Excel Add-Ins در بخش Manage رو دکمه Go کلیک میکنیم.

نحوه ذخیره سازی و انتشار ماکرو در اکسل

با انتخاب دکمه GO پنجره Add-Ins باز میشه.

نحوه ذخیره سازی و انتشار ماکرو در اکسل

حالا روی دکمه Browse کلیک میکنیم و فایل XLAM خودمون رو انتخاب میکنیم. با اینکار فایل ما به عنوان یک Add-In به اکسل اضافه میشه و میتونیم از توابع و کدهای اون استفاده کنیم. خب در این مطلب با نحوه ذخیره ماکرو در اکسل و انتشار اون آشنا شدیم. امیدوارم این مطلب براتون مفید بوده باشه.

53 Comments
  • payam mahmoodi
    Posted at 10:06h, 25 ژانویه پاسخ

    سلام من یه مشکل دارم
    یه کد vba روی یه فایل اکسل نوشتم ولی هر فایل دیگه ای که باز میکنم این کد انتشار پیدا میکنه فایل های دیگرو هم درگیر میکنه ، چیکار کنم که این اتفاق نیوفته ؟

  • هلیا آهویی
    Posted at 10:37h, 15 جولای پاسخ

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

  • مجتبی
    Posted at 17:56h, 17 دسامبر پاسخ

    سلام بر استاد
    بسیار عالی بود
    فقط هر بار که توی فایل ماکرو تغیرات می دهیم حتما بایستی این مراحل SAVE AS اکسل با فرمت XLAM رو انجام بدهیم؟. ممنون و متشکر

    • محمد قاسم خانیکی
      Posted at 19:38h, 17 دسامبر پاسخ

      سلام مجتبی جان
      نه جانم
      فقط برای بار اول نیاز به Save As هست
      که فرمت فایل تون تغییر کنه تا امکان ذخیره ماکرو رو داشته باشه
      در دفعات بعدی نیازی به تکرار آن نیست
      بلکه همون Save کافیه
      موفق باشی – خانیکی

      • مجتبی
        Posted at 01:26h, 18 دسامبر پاسخ

        سلام و ممنون از توجه و لطف شما سپاس

  • اکبر
    Posted at 22:10h, 20 اکتبر پاسخ

    سلام ممنون بسیار مفید بود

  • davood
    Posted at 11:30h, 07 جولای پاسخ

    مقاله های ماکرو در اکسل شما را خوندم خیلی عالی بود

    • یاسین اسماعیل پور
      Posted at 13:40h, 07 جولای پاسخ

      سپاس از لطفتون

    • یاسین اسماعیل پور
      Posted at 13:41h, 07 جولای پاسخ

      لطف دارید

  • امیر رضا
    Posted at 11:29h, 10 ژانویه پاسخ

    سلام ممنونم Application.OnKey از کجا باید درج بشه ؟

  • امیر رضا
    Posted at 07:44h, 02 ژانویه پاسخ

    سلام ممنون از راهنمایی شما بابت این ماکرو رو برای اجرا اونجا گذاشتم که هرموقع کاربر بخواد استفاده کنه نه همیشه!
    واسه نصب خودکار برنامه من راهکاری وجود داره به نظر شما؟
    آیا زبان برنامه نویسی وجود داره که دست ادم رو بیشتر از vba در بستر اکسل باز بزاره؟
    م

    • یاسین اسماعیل پور
      Posted at 12:26h, 02 ژانویه پاسخ

      سلام. میتونی از Application.OnKey استفاده کنی واسه اجرای کدت

  • امیر رضا
    Posted at 09:48h, 31 دسامبر پاسخ

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

    • یاسین اسماعیل پور
      Posted at 15:33h, 31 دسامبر پاسخ

      سلام. خب چرا توی ایونت باز شدن همون ورکبوک کد userform1.show رو اجرا نمیکنید؟ اینجوری به محض اینکه کاربر فایلتون رو باز کنه یوزر فرم براش نمایش داده میشه.

  • ali
    Posted at 19:17h, 16 نوامبر پاسخ

    سلام یک فایل به اسم pesonal.xlsb در مرحله اول ساخته شده و الان هر ماکروی که می سازم داخل اون ذخیره میشه وقتی اون فایل و از xlstart پاک می کنم تمام ماکرو های پاک میشه هر workbook نمی تونه برای خودش کد داشته باشه و ذخیره بشه کمکم کنید سپاس گذارم

    • یاسین اسماعیل پور
      Posted at 17:05h, 19 نوامبر پاسخ

      سلام. فایل personal.xlsb یکی از فایل های پیش فرض نرم افزار اکسل هست که ماکروهای که میخواید برای تمام ورکبوک ها فعال باشند رو اونجا مینویسید. وقتی میخواید ماکرویی رو برای یک فایل بنویسید در قسمت چپ visual basic editor و بخش project explorer که اسم فایل های باز رو نوشته ببینید که ماکرو تون رو دارید کجا مینویسید و اول بخش مروبط به اون فایل رو باز کنید بعد ماکروتون رو اونجا بنویسید.

  • مصطفی.ی
    Posted at 16:28h, 24 آگوست پاسخ

    سلام بسیار ممنون از مطالب عالیتون.یه ماکرو نوشتم و با پسوند *.bas ذخیرش کردم اما برای استفادش هر بار باید alt+f11 بزنم و ایمپورتش کنم.نمیشه به صورتی ذخیرش کرد که خودش توی همه اکسل ها ایمپورت بشه؟

    • امیر
      Posted at 19:02h, 26 دسامبر پاسخ

      سلام دوستان این مشکل من هم هست اگر ممکنه کمک کنید

      • محمد قاسم خانیکی
        Posted at 19:56h, 26 دسامبر پاسخ

        سلام امیر جان
        راهکارش خیلی ساده است
        کافیه که بعد از اینکه ماکرو رو به فایل تون وارد کردین
        از طریق منوی File و انتخاب Save As فایل تون رو با فرمت Excel Macro-Enabled Workbook ذخیره کنید
        موفق باشی – خانیکی

  • Behzad
    Posted at 13:53h, 09 آگوست پاسخ

    سلام.
    دوستان در ماکرو میخوام بنویسم که اطلاعات و از workbook که باز هستش و کپی کنه تو workbook دیگری که شبیه بهم هستش و اما بسته ،ذخیره کنه .
    ممنون میشم کمکم کنید.

  • معبودی
    Posted at 11:54h, 14 مارس پاسخ

    سلام ممنون از سایت آموزش های خوبتون
    با روشی که گفته بودید مارکرو رو در قسمت add-in اضافه کردم و مشکلم حل شد ولی توی دستگاه دوستم این کار انجام دادم ، درست نشد هم چنان اعداد را متن در نظر میگیره و در فرمول sum جمع نمی کنه ؟ لطفا راهنمایی کنید

  • عقیل
    Posted at 15:28h, 03 نوامبر پاسخ

    سلام
    چجوری میشه با باز شدن نرم افزار صفحات اکسل رو به صورت full screen مشاهده کرد؟؟

  • ARASH
    Posted at 06:21h, 09 اکتبر پاسخ

    سلام برادر من ایران نیستم یه سوال داشتم من می خوام بنویسم مثلا ارش تو سلول بعدی یک عدد به طور مشخص وارد شه مثلا رافتینگ سلول بعدی بنویسه 100 ممنون من هروز به تو سر میزنم ممنون

  • حامد
    Posted at 14:38h, 23 جولای پاسخ

    عالی بود عالی.
    لطفا اگر تاریخ را به صورت 1394/02/15 بدهند و بخواهیم تفاضل حساب کنیم چه کنیم.

  • فرید
    Posted at 12:34h, 22 جولای پاسخ

    دستتون درد نکنه . آموزشتون عالی بود

  • قالیشویی
    Posted at 10:50h, 05 فوریه پاسخ

    چگونه فایلی را در اکسل xlsx ذخیره کنیم؟
    لطفا راهنمایی کنید.

  • مجتبی
    Posted at 10:53h, 24 ژانویه پاسخ

    سلام.من یه پوشه حاوی دو تا فایل اکسل به نامهای 1 و 2دارم.زمانیکه دوتا فایل باز هستن ، برای بستن اونها حتما باید فایل شماره 2 رو ببندم و بعد شماره 1 در غیر اینصورت فایل شماره 1 بسته نمیشه.ضمنا شیتهای فایل 1 هم مخفی است.لطفا اگه میدونید راهنمایی بفرمایید

  • علی
    Posted at 01:16h, 21 ژانویه پاسخ

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

  • مهدی
    Posted at 17:04h, 14 دسامبر پاسخ

    سلام من فایل اکسلم به صورت ماکرو در اومده بعد از سیو معمولی متوجه شدم اطلاعات ذخیره نشده البته فایل دارای حجم مورد نظر هست ولی اطلاعات دیده نمیشن لطفا راهنماییم کنید چه جوری اطلاعات و بر گردونم
    مرسی

  • sima
    Posted at 16:32h, 09 آگوست پاسخ

    سلام خودم اسمشو عوض کردم ولی فک کنم اولش همین بود و با پسوند xlsm فایل راsave کردم

    • یاسین اسماعیل پور
      Posted at 20:17h, 09 آگوست پاسخ

      سلام سیما جان.
      شما وقتی اون فایل باز شد برو تو تب view و گزینه hide رو بزن. فقط مطمین باش که اشتباهی فایل دیگه ای رو hide نکنی

  • sima
    Posted at 17:08h, 08 آگوست پاسخ

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

    • یاسین اسماعیل پور
      Posted at 00:28h, 09 آگوست پاسخ

      سلام سیما جان. اسم فایلی که باز میشه personal.xlsb هست؟

  • sima
    Posted at 10:45h, 06 آگوست پاسخ

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

    • یاسین اسماعیل پور
      Posted at 11:19h, 06 آگوست پاسخ

      سلام
      برای اینکار معمولاً تمام توضیحات (نحوه کار با فایل، توضیحات کارکرد هر شیت و … ) رو در یک شیت اول فایل قرار میدن و برای توضیحات ریز تر داخل هر شیت از ابزار کامنت گذاری استفاده میکنند.

  • احدی
    Posted at 13:22h, 26 ژوئن پاسخ

    سلام. با تشکر از زحمات و راهنمایی های شما
    بنده فایل matrix.xla لازم داشتم و دانلود کردم و از طریق Add.-in میارم ولی بعد از زدن ok اکسل بسته میشه؟
    لطفا راهنماییم کنید.
    احدی

  • Bahare Lashgari
    Posted at 11:43h, 25 می پاسخ

    سلام
    من میخوام تو اکسل تو یک ردیف به ترتیب A-A…A-Z و بعد B-A…B-Z و… نوشته بشه
    چطوری اینو با ماکرو بنویسم؟
    کد حروف رو باید بنویسم؟!
    من آماتورم لطفا راهنماییم کنید
    ممنون

    • آموزش ماکرو نویسی در اینجا
      Posted at 14:32h, 25 می پاسخ

      سلام ، بهاره خانم
      شما تابعی بایستی بنوسید که یک عدد شمارنده رو از شما بگیره و حروف مورد نظر رو به شما بده
      اگر با اعداد مبناهای مختلف آشنایی داشته باشید ، خروجی شما عددی است دو رقمی برمبنای حروف لاتین!!
      بصورت اتفاقی ، قبل ازینکه شما این سوالتون رو مطرح کنید ، من تابع ساده ای نوشته ام که عددی یک رقمی را میگیرد و حرف لاتین
      متناظر آن را به شما برمیگرداند ، و آن را در یک فایل نمونه آموزشی در وبلاگم گذاشته ام
      شما به راحتی میتوانید با قدری کار کردن روی این تابع ، آن را برای تمامی حروف لاتین تکمیل نمایید
      و از این تابع در تعریف تابع اصلی تان کمک بگیرید
      برای دانلود کردن فایل نمونه آموزشی بر روی عنوان پیام “آموزش ماکرونویسی در اینجا” کلیک نمائید
      موفق باشید – خانیکی
      0919-302-6452

  • حسین
    Posted at 18:35h, 14 می پاسخ

    سلام
    ممنون از سایت آموزندتون
    مشکل من اینه که وقتی ماکرو رو میخوام ذخیره کنم ، توی قسمت save as ، اصلا پسوند های xlms یا
    xlsb وجود نداره!!!!
    اکسل هم 2016 هستش

    • برای ماکرو نویسی بیا اینجا
      Posted at 02:18h, 15 می پاسخ

      سلام ، حسین آقا ، باید بگم که ماکرو به همراه فایل اکسل ذخیره میشه و نیازی نیست که برای ذخیره آن ، حتماً از محیط VB استفاده بشه ، ازطرفی موقع Save As اصلاً نامی از پسوند آن برده نمیشه ، بلکه اسامی کامل آنها که در زیر آمده نمایش داده میشه
      Excel 97-2003 Workbook = *.xls
      Excel Binary Workbook = *.xlsb
      Excel Macro-Enabled Workbook = *.xlsm
      Excel Workbook = *.xlsx

  • hejar
    Posted at 13:06h, 02 می پاسخ

    با سلام.
    من یک شیت اکسل دارم که در اون از تابع today استفاده شده. یعنی اطلاعات امروز که ذخیره شد؛ فردا که میخوای شیت رو باز کنی اطلاعات دیروز صفره. چگونه میتونم طوری ذخیره کنم که اطلاعات روز قبلم جداگانه حفظ بشه؟ منظورم اینه که اطلاعاتم روزانه سیو بشه و بتونم در یک فولدر جداگانه حفظ کنم بدون اینکه تغییری در شیت داده بشه.

  • عليرضا
    Posted at 16:07h, 23 فوریه پاسخ

    سلام
    مطالبتون بسيار مفيده. آموزش اكسس هم سايت خوبي سراغ داريد؟

    • یاسین اسماعیل پور
      Posted at 15:16h, 09 مارس پاسخ

      سلام علیرضا جان. مرسی از لطفت. نه متاسفانه سایت خوبی تو ذهنم نیست که معرفی کنم

  • saas303772
    Posted at 14:23h, 07 فوریه پاسخ

    سلام
    با تشکر از سایت خوبت
    من همه مراحل بالا رو انجام میدم ولی متاسفانه نتیجه نمیگیرم چرا؟
    فقط توی همون شیتی که ماکرو رو نوشتم کار میکنه اون هم فقط بار اول بعد بستنش بازم غیر فعال میشه ( دستور مربوط به تاریخ شمسی رو نوشتم)
    بازم ممنون

    • یاسین اسماعیل پور
      Posted at 23:32h, 08 فوریه پاسخ

      سلام. نمیدونم. بیین کجای کار رو اشتباه میکنی. شاید با پسوند xlsm دخیره نمیکنی

  • hamedbie
    Posted at 20:51h, 31 ژانویه پاسخ

    با سلام و عرض ادب و تشکر از مطالب بسیار مفید شما ؛
    من یک add-in دارم (تبدیل مبلغ به حروف فارسی) ، می خواستم بپرسم چطوری میشه این add-in رو با فایل اکسلم به صورت پک کنم که تو هر کامپیوتر دیگه ای که فایل اکسلمو میبرم نیاز به نصب add-in نباشه و اون توی خوده فایل اکسل باشه .
    من حتی رمز این add-in ریست کردم و سورس vb اون رو هم توی ورک شیت مربوط بهش کپی و ذخیره کردم ولی بازم توی یک کامپوتر دیگه که می برم باید add-in رو نصب کنم وگرنه باز مبلغ به حروف نشون نمیده .
    با تشکر فراوان از شما .

    • یاسین اسماعیل پور
      Posted at 19:07h, 04 فوریه پاسخ

      سلام. این addin تجاری هست؟ متاسفانه د ر صورتی که اینطوری باشه من نمیتونم کمکی بهتون بکنم چون کپی کردن سورس بدون اجازه سازنده addin درست نیست

  • رضا
    Posted at 18:18h, 30 دسامبر پاسخ

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

  • محمد
    Posted at 22:38h, 30 نوامبر پاسخ

    سلام VIEW CODE برای آفیس 2013 وجود نداره .
    باید چه کار کرد

    • یاسین اسماعیل پور
      Posted at 02:53h, 15 دسامبر پاسخ

      دوست عزیز امکان نداره. بنده هر روز دارم با آفیس 2013 کار میکنم و این تصاویری که شما میبینید هم در آفیس 2013 هست. مگر اینکه نسخه شما نسخه خاص یا محدودی باشه

  • ghazaee
    Posted at 12:02h, 12 آگوست پاسخ

    سلام من یک کاربر آماتور هستم از مطالب ارسالی استفاده کردک امیدوارم ما را در درک درست از نحوه درست استفاده از اکسل راهنمائی فرمائید موفق باشید

    • یاسین اسماعیل پور
      Posted at 00:05h, 13 آگوست پاسخ

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

Post A Comment