سبد خرید
0

سبد خرید شما خالی است.

تمام دسته ها
  • تمام دسته ها
  • Power BI
  • Power Pivot
  • Power Query
  • ابزارها
  • افزونه ها
  • اکسل مدیا
  • توابع اکسل
  • دسته‌بندی نشده
  • دیده بان
  • گوگل شیت
  • مسائل کاربردی
  • معرفی کتاب
  • نمودار ها
  • وی بی - ماکرو

همه چیز از ضبط ماکرو در اکسل

ایجاد ماکرو در اکسل
۵/۵ - (۴ امتیاز)

ایجاد ماکرو در اکسل

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

برای ضبط ماکرو کافیه که گزینه Record Macro رو که در تب View و در بخش Macros قرار داره رو انتخاب کنید.

شروع ضبط ماکرو

شکل ۱- ایجاد ماکرو در اکسل

با انتخاب این گزینه، پنجره ای باز میشه که مشخصات ماکرویی که قصد ذخیره سازی اون را دارید میپرسه. تو این پنجره به ترتیب از بالا به پایین اول:

  • نام ماکرو، همیشه سعی کنید نام های معنادار استفاده کنید تا در آینده با کمترین زمان متوجه عملکرد ماکرو بشید. اگر شما نامی برای ماکرو تعیین نکنید، اکسل به صورت خودکار یک اسم برای اون در نظر میگیره مثل Macro1، Macro2 و …
  • کلید میانبری که برای اجرای اون بعد از ذخیره سازی استفاده میشه (میتونید هیچ کلیدی برای اجرای ماکرو تعیین نکنید). همینطور باید مواظب باشید که این کلید میانبر با کلیدهای میانبر از پیش تعریف شده تداخلی نداشته باشن، مثلا ترکیب Ctrl+C. این کار باعث میشه که با زدن این کلید میانبر به جای اجرای عمل از پیش تعریف شده، ماکرو شما اجرا بشه و مشکلات بدی رو به وجود بیاره
  • فایلی که ماکرو درون اون باید ذخیره بشه
  • در آخر توضیحی در مورد ماکرو. این پنجره تو شکل ۲ قرار داده شده.

مشخصات ماکرو را تعیین کنید

شکل ۲- ایجاد ماکرو در اکسل – مشخصات ماکرو را تعیین کنید

زمانیکه این مشخصات رو پر کردید روی دکمه OK کلیک کنید تا وارد مرحله ضبط ماکرو بشید. در این مرحله اکثر عملیات شما مثل ورود داده، انتخاب سلول، فرمت دهی به سلول، اسکرول کردن و … به صورت کدهای VBA تعریف و ذخیره میشن.

در حین ضبط ماکرو یک دکمه با شکل مربع در نوار وضعیت (Status Bar) ظاهر میشه که با استفاده از اون میتونید ضبط ماکرو رو تموم کنید.

توقف ضبط ماکرو

شکل ۳- توقف ضبط ماکرو

بعد از فشردن این دکمه، کدهای تعریف شده در یک ماژول در ویرایشگر VBA ذخیره میشن که میتونید اونجا کدها رو مشاهده کنید. این پنجره با فشردن دکمه Alt+F11 باز میشه و در قسمت پنجره پروژه ها میتونید این ماژول رو ببینید.

کدهای وی بی ایجاد شده در VBE (ویرایشگر VBA)

شکل ۴- کدهای وی بی ایجاد شده در VBE (ویرایشگر VBA)

نحوه ذخیره سازی آدرس ها

در اکسل هر سلول دارای یک آدرس منحصر به فرد هست. زمانیکه قصد ارجاع دادن به یک سلول رو دارید میتونید از این آدرس استفاده کنید. آدرس دهی به سلول به دو صورت قابل انجام شدن هست: حالت مطلق و حالت نسبی.

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

در حالت نسبی، اجرای ماکرو از سلول فعال هست و تغییرات نسبت به سلول فعال انجام میشه. مثلا فرض کنید شما از سلول C10 شروع به ضبط ماکرو کردید و در سلول F10 (یعنی سلولی که سه تا ستون سمت راست C10 قرار داره) متنی رو مینویسید و ماکرو رو ذخیره میکنید. حالا ماکرو رو اجرا میکنید ( در این حالت مثلا سلول A1 فعال هست)، چون قبلا این ماکرو رو به صورت نسبی ضبط کردید، متن شما در سه ستون سمت راست سلول A1 که D1 هست نوشته میشه.

برای اینکه تعیین کنید نحوه آدرس دهی سلول ها در هنگام ضبط ماکرو به چه صورت باشه میتونید از همون قسمت View و در بخش Macros گزینه Use Relative References رو فعال یا غیرفعال کنید. توجه کنید اگر این گزینه در حالت انتخاب باشه آدرس دهی به صورت نسبی ذخیره میشه و اگر غیرفعال بشه، آدرس دهی به صورت مطلق ذخیره میشه.

تعیین نحوه آدرس دهی در ضبط ماکرو

شکل ۵- تعیین نحوه آدرس دهی در ضبط ماکرو

روش های اجرای ماکرو ذخیره شده

روش اول: اگر هنگام ذخیره ماکرو کلید میانبر برای اون تعریف کرده باشید به راحتی با فشردن اون میتونید ماکرو رو اجرا کنید.

روش دوم: با استفاده از دکمه Alt+F8 پنجره ماکروهای ذخیره شده رو میتونید ببینید  (یا دکمه View Macros که در شکل ۵ هست هم میتونید این پنجره رو باز کنید)، تو این پنجره ماکروها و روتین های از پیش تعریف شده وجود داره که با انتخاب هر کدوم و زدن دکمه Run میتونید ماکرو یا روتین رو اجرا کنید.

مشاهده و ویرایش ماکروها و روتین های موجود

شکل ۶- مشاهده و ویرایش ماکروها و روتین های موجود

روش سوم: راه دیگه ای که برای اجرای ماکرو میشه استفاده کرد تخصیص ماکرو به یک Shape هست که روش بسیار کاربردی هست. برای انجام این کار اول باید یک شیپ ایجاد کنید و با کلیک راست کردن و انتخاب گزینه Assign Macro ماکرو رو انتخاب کنید تا هر بار با کلیک کردن روی اون شیپ، ماکرو اجرا بشه. مزیت این کار اینه که شما میتونید انواع کارهای گرافیکی روی این شیپ انجام بدید و ظاهر حرفه ای برای اجرای ماکرو درست کنید.

تخصیص ماکرو به شیپ

شکل ۷- تخصیص ماکرو به شیپ

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

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

کلیدواژه : مقدماتی
133

من سامان چراغی هستم. دانش آموخته مقطع فوق لیسانس دانشگاه تربیت مدرس در رشته مهندسی صنایع. از سال 1388 اکسل و برنامه نویسی VBA رو به صورت حرفه ای شروع کردم.

دیدگاه کاربران
  • علی رشیدی ۱ آبان ۱۴۰۰ / ۱۲:۳۶ ب٫ظ

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

    • آواتار
      حسنا خاکزاد ۳ آبان ۱۴۰۰ / ۱:۴۰ ب٫ظ

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

      ی مقدار دانش کدنویسی نیاز دارید. میتونید حلقه ها و متغیر ها رو از داخل مقالات ببینید

  • مرجان ۱ فروردین ۱۴۰۰ / ۹:۵۳ ب٫ظ

    سلام
    ممنون از اطلاعات خوبتون
    من هر کاری میکنم ، Record Macro ای که ثبت میکنم ، ذخیره نمیشه وبا هر بار بستن اکسل باید از اول انجام بدم .میشه لطفا کمکم کنین که چی کار کنم ؟

    • آواتار
      حسنا خاکزاد ۵ فروردین ۱۴۰۰ / ۸:۳۵ ب٫ظ

      درود بر شما
      حتما باید بصورت Macro Enable (.Xlsm) ذخیره بشه
      در غیر اینصورت حذف میشه

  • zarbi ۲۸ اردیبهشت ۱۳۹۹ / ۸:۰۹ ق٫ظ

    سلام
    یه ماکرو که بشه باهاش عکس داخل اکسل رو قفل کرد وجود داره؟

    • سامان چراغی ۲۸ اردیبهشت ۱۳۹۹ / ۱۰:۴۲ ق٫ظ

      سلام
      برای این کار یک ماکرو ضبط کنید و در حین ضبط، شیت را Protect کرده (توجه کنید که اگر تیک گزینه Edit Object نباید خورده باشه)

  • مجید ۱۲ آذر ۱۳۹۸ / ۳:۱۲ ق٫ظ

    سلام
    میخواستم بدونم میشه توو ماکرو از ip. سیستم و زمانی که خوده ویندوز داره استفاده کنیم؟

    • سامان چراغی ۱۴ آذر ۱۳۹۸ / ۶:۵۶ ب٫ظ

      سلام
      میتونید از تابع زیر استفاده کنید:

  • سعید ۸ خرداد ۱۳۹۸ / ۸:۲۲ ق٫ظ

    با سلام و عرض ادب
    تعدادی عدد در ۱۰۰ سطر و ۳۰ ستون داریم که می خواهیم بطور اتوماتیک و بر اساس ستون اول سورت شوند. برای اینکار از ماکرو استفاده کردم و در حین ضبط ماکرو، عملیات سورت به خوبی (با جابجایی صحیح سطرها) انجام شد. اما پس از اتمام ضبط با اجرا کردن ماکرو یک پیغام خطا ظاهر میشه و عملیات رو هم متوقف میکنه.
    امکان داره راهنمایی بفرمایید کجای کار اشکال داره؟

    • آواتار
      حسنا خاکزاد ۸ خرداد ۱۳۹۸ / ۹:۰۸ ق٫ظ

      درود بر شما
      پیغام خطا رو ارسال کنید تا بشه بررسی کرد

      • سعید ۱۹ خرداد ۱۳۹۸ / ۷:۵۴ ق٫ظ

        با سلام مجدد
        پیام خطا به شرح زیر است:
        Run-time error ‘۹’:
        Subscript out of range
        با تشکر فراوان

  • Aiin ۲۸ بهمن ۱۳۹۷ / ۱۱:۱۳ ب٫ظ

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

    • سامان چراغی ۲۹ بهمن ۱۳۹۷ / ۹:۰۶ ق٫ظ

      معمولا زمان اجرای ماکروهای ضبط شده به قدری سریع هست که به سختی فرصت میکنید که در حین اجرای اون متوقفش کنید (اما اگر از طریق کدهای VBA، حلقه های طولانی تعریف کنید زمان اجرای اونا بیشتر میشه و فرصت متوقف کردنشون رو دارید).
      برای متوقف کردن کدهای در حال اجرا از کلید میانبر Ctrl + Break روی کیبورد استفاده کنید.

  • حسین ۲۳ آبان ۱۳۹۷ / ۷:۲۳ ب٫ظ

    سلام وقت بخیر خوبین. من به یه مشکل برخوردم میخواستم اگه میشه کمکم کنین. فرض کنین در اکسل دو ستون داریم به نام A و B که ستون A به نام مقدار امروز و ستون B مقدار تا به امروز ما باشه. من هر روز مقداری داده عددی مختلف در ستون A وارد میکنم و میخوام با مقدار تا به امروز ستون B که از مقدایر روز گذشته می باشد جمع شود و در همان خانه تا به امروز ذخیره شود . برای مثال در ستون B فرض کنیم ۵ بوده و امروز در ستون A مقدار ۱۰ رو وارد کردم من میخوام فرمول یا تابعی براش تعریف بشه که این مقدار ۵ با ۱۰ جمع زده بشه و در همان سلول ستون B مقدار کلی ۱۵ رو مشاهده کنم که دیگر بصورت دستی جمع نزنم و وارد کنم ممنون

    • آواتار
      حسنا خاکزاد ۲۵ آبان ۱۳۹۷ / ۷:۴۶ ب٫ظ

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

      میشه تا حد ی از خطای circular reference استفاده کرد… ولی خب باید برررسی کنید ببینید عواقب چی خوهد بود روی سایر محاسبات

  • مصطفی اسدی ۲۷ مرداد ۱۳۹۷ / ۵:۳۰ ق٫ظ

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

  • رضا ۱۶ بهمن ۱۳۹۶ / ۱۲:۳۴ ب٫ظ

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

ارسال دیدگاه

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

توسط
تومان