عنوان این مقاله نقل قولی است از یکی از بهترین اساتید دوره کارشناسی ام. ایشان معتقد بودند که تا وقتی برنامه نویسی را در اکسل ( ماکرونویسی در اکسل ) یاد نگرفته اید، اجازه ندهید کسی درباره شما از لفظ “مهندس” استفاده کند. در این مقاله به ماکرونویسی در اکسل و اهمیت و کاربرد آن در سهولت انجام پروژه های مهندسی علوم آب می پردازیم. در اکسل و البته تمام نرم افزار های موجود در Office امکان برنامه نویسی تحت عنوان ماکرو نویسی وجود دارد. اصطلاح VBA همان مخفف عبارت Visual Basic for Applications است که در واقع زبان برنامه نویسی ویژوال بیسیک مختص اپلیکیشن ها می باشد. زبان برنامه نویسی ویژوال بیسیک در چهارچوب برخی افزارهای آفیس مانند اکسل، ورد، اوت لوک و اکسز گنجاده شده است و به این برنامه ها، قابلیت های مخصوص تری اضافه نموده است.

در حقیقت کدهایی که به زبان ویژوال بیسیم نوشته می شوند ماکرو نامیده می شوند بنابراین ماکرونویسی در واقع همان کد نویسی است. کد ها می توانند به منظور های خاص نوشته شوند به عنوان مثال می توانند برای ایجاد یک دستور نوشته شوند یا درج یک کامنت و … . به طور کلی یکی از مزایای نرم افزار اکسل این است که کاربر از طریق آن می تواند فعالیت های روتین و تکراری خود را به دست توانمند اکسل بسپارد. برای مثال تصور کنید قرار است شما برای حوضه آبریز کارون بزرگ، شماره منحنی تعیین کنید برای انجام این کار ابتدا لازم است تا به تعداد زیرحوضه های این حوضه که 27 است، شماره منحنی تعیین کنید. این پروسه طولانی و تکراری با ماکرونویسی در اکسل به انجام یک پروسه به جای 27 بار، تقلیل می یابد. علاوه بر کاربرد فوق، ماکرونویسی مزایای دیگری نیز دارد: انجام پروژه های سنگین، پروژه های خاص همانند ایجاد فرم های رابط کاربری و یا گاهی می خواهیم بعد از باز شدن یک فایل، دستور خاصی انجام پذیرد. پس برای انجام این ها و بسیاری فرامین دیگر کافی است در برنامه اکسل گزینه Developer را انتخاب کرده و سپس Visual Basic (مطابق شکل زیر).

حتما بخوانید  آشنایی با حلقه تکرار for each

ماکرونویسی

ماژول در ماکرونویسی

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

  1. ماژول های استاندارد (Standard Modules): ماکرو هایی را که شما از ابتدا شروع به طراحی آن می کنید و یا با استفاده از ابزار ضبط ماکرو (Macro Recorder) ایجاد می کنید در این نوع ماژول ها قرار می گیرند. در واقع ابزار ذخیره ماکرو از زمان شروع ضبط، عملیات موس و کیبورد رو به زبان (VBA) ترجمه می کند. برای ضبط ماکرو ابتدا: فایل اکسل جدید باز کنید سپس وارد محیط ویرایشگر کد(VBA) بشوید. دو پنجره اکسل و ویرایشگر رو کنار هم قرار بدهید. حالا از منو View، از بخش Macros گزینه Record Macro رو بزنید و از پنجره باز شده گزینه OK رو انتخاب کنید. پس از آن شروع کنید به کار کردن با اکسل، سلول ها رو کلیک کنید، متنی بنویسید، رنگ ها رو تغییر بدید، با ابزارها کار کنید. در پایان روی گزینه Stop در گوشه سمت چپ و پایین در کنار کلمه Ready دیده می شود. با شروع ضبط ماکرو یک ماژول با نام Module1 به صفحه VBA اضافه می شود؛ دستوراتی که از این به بعد ایجاد می شوند در آن جا ذخیره می شوند و شما همزمان قادر خواهید بود تا ثبت شدن کدها را ببینید.
  2. ماژول های فرم های کاربر (UserForm Modules): این نوع ماژول ها به موارد خاصی تعلق دارند که Userform نامیده می شوند.
  3. ماژول های برگه (Worksheet Modules): این نوع ماژول ها کدهای VBA را در خود نگهداری می کنند که مشابه ماکرو ها عمل می کنند، اما دارای قسمت بندی هایی به نام رویه (Procedure) هستند که برنامه نویسی را برای شما منسجم تر خواهند کرد.
  4. ماژول های کلاس (Class Modules): این نوع ماژول ها محتوی کدهای VBA هستند که به وسیله کاربر ایجاد می شوند تا موارد اختصاصی کاربر را با برنامه نویسی، در آن ها بسازید.
  5. ماژول های کاربرگ (Workbook Module)
حتما بخوانید  ماهیت کارکرد رویداد در workbook

ماکرونویسی VBA در اکسل

مهتاب محمودزاده
در هر چیزی تفکری است
نظر خود را بنویسید:
ثبت دیدگاه
دیدگاه های کاربران
hamed
12:03 - 1400/05/15
پاسخ دهید

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

    آرش ازکیا
    13:48 - 1400/05/15
    پاسخ دهید

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

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

    اگر بخوام یک جواب کاربردی به شما بدم باید عرض کنم که بله با ماکرونویسی می تونید کاری که مایل هستید رو انجام بدید ولی شاید با متلب خیلی ساده تر اینکار انجام بشه (شاید هم نه) و برای اینکه جواب قطعی من رو داشته باشید لطفا درباره ماهیت کاری که مدّنظر دارید بیشتر توضیح بدید که راهنمایی موثرتری خدمتتون داشته باشم

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

    موید باشید انشاء الله

لطفا صبر کنید