Vba منطقی یا. اپراتورهای VBA و توابع داخلی. انتقال نادرست انتقال صحیح

نام پارامتر معنی
موضوع مقاله: اپراتورهای VBA
روبریک (دسته موضوعی) برنامه نويسي

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

در زبان VBA می توانیم تشخیص دهیم گروه های زیراپراتورها:

1. عملگرهای اعلامی برای توصیف اشیایی که برنامه با آنها کار می کند (انواع متغیرها، ثابت ها و آرایه ها و غیره)

2. اظهار نظر،

3. عملگرهایی برای تخصیص و تغییر مقادیر شیء،

4. عملگرهایی که پیشرفت محاسبات را کنترل می کنند (شرطی، چرخه ای، انتقال).

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

اپراتور نظر

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

هر خطی از متن برنامه می تواند با یک نظر به پایان برسد. یک نظر در VBA با یک آپستروف (") شروع می شود و شامل هر متنی در سمت راست خط است.

به عنوان مثال،

وزن = وزن + z " ارزش افزایش وزن = وزن * قیمت " هزینه جدید

اپراتور واگذاری

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

اظهارات کنترل

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

عبارت شرطی If Then Else End If

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

عملگرهای VBA - مفهوم و انواع. طبقه بندی و ویژگی های دسته "اپراتورهای VBA" 2017، 2018.

  • - اپراتورهای حفاظت از زندگی و کمیت

    این دسته از Dial در TRIZ به عنوان "اصل شماره 34، دور انداختن و بازسازی قطعات ارائه می شود: الف) بخشی از یک شی که به هدف خود رسیده است یا غیر ضروری شده است باید دور انداخته شود (محلول، تبخیر و غیره) یا اصلاح شود. مستقیماً در جریان کار ب)... .


  • - عناصر زبان VBA

    برنج. 12.1 اشیاء قرار داده شده در فرم 6. با فعال کردن هر شی به طور جداگانه در فرم، ویژگی آن را با استفاده از پنجره خصوصیات تنظیم می کنیم (Properties شکل 12.2). بنابراین، رابط ایجاد می شود (شکل 12.3). برنج. 12.3. رابط پروژه (با... .


  • - اظهارات مشروط

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


  • - گزاره های شرطی مرکب

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


  • - مبانی VBA

    ویژوال بیسیک For Application (VBA) ترکیبی از یکی از ساده ترین زبان های برنامه نویسی و تمامی قابلیت های محاسباتی صفحه گسترده اکسل است. با استفاده از VBA می توانید به راحتی و به سرعت برنامه های متنوعی را ایجاد کنید، حتی بدون اینکه در این زمینه متخصص باشید...

  • اطلاعات نظری مختصر

    1. نحو و معناشناسی زبان برنامه نویسی VBA

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

    اصول نحوی اصلی این زبان به شرح زیر است:

    • VBA حساس به حروف بزرگ و کوچک است.
    • برای کامنت گذاشتن کد تا آخر خط، استفاده کنید نقل قول تک(") یا دستور REM؛
    • مقادیر کاراکترها باید در گیومه های دوتایی محصور شوند (")؛
    • حداکثر طول هر نام در VBA (متغیرها، ثابت ها، رویه ها) 255 کاراکتر است.
    • شروع یک بیانیه جدید - انتقال به خط جدید(نقطه ویرگول، مانند C، جاوا، جاوا اسکریپت، برای این مورد استفاده نمی شود).
    • محدودیت در حداکثر طولهیچ خطی وجود ندارد (اگرچه در ویرایشگر فقط 308 کاراکتر در یک خط قرار می گیرد). چند عبارت در یک خط با دو نقطه از هم جدا می شوند:
      MsgBox "Check 1" : MsgBox "Check 2"
    • برای سهولت در خواندن، می توانید چندین خط فیزیکی را با استفاده از یک فاصله و یک خط زیر در یک خط منطقی ترکیب کنید:
      MsgBox "پیام به کاربر" _
      &vUserName

    معناشناسی یک زبان، معنای معنایی کلمات است. در برنامه نویسی - معنای معنایی اولیه عملگرها، ساختارهای اصلی زبان و غیره.

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

    حسابیفقط 7 اپراتور در VBA وجود دارد.

    چهار استاندارد: جمع (+)، تفریق (-)، ضرب (*)، تقسیم (/)، و سه مورد دیگر:

    • توان (^). به عنوان مثال، 2^3 = 8;
    • تقسیم عدد صحیح (\). عدد اول را بر عدد دوم تقسیم می کند و قسمت کسری را دور می اندازد (بدون گرد کردن). به عنوان مثال، 5\2 = 2;
    • بخش مدولو (Mod). عدد اول را بر عدد دوم تقسیم می کند و فقط باقیمانده تقسیم را برمی گرداند. به عنوان مثال، 5 مد 2 = 1.

    عملگر انتساب در VBA علامت برابر است. می توانید آن را اینگونه بنویسید:

    بگذارید nVar = 10 باشد
    یا حتی ساده تر:
    nVar = 10

    در اینجا علامت تساوی را با عملگر مساوی اشتباه نگیرید. آخرین عبارت به معنای "مقدار nVar را 10 قرار دهید" است، و اگر خط به این صورت باشد: اگر (nVar = 10) باشد، آنگاه به معنای "اگر مقدار nVar 10 باشد" است.

    عملگرهای مقایسهدر VBA فقط 8 مورد وجود دارد:

    • برابری (=). به عنوان مثال، اگر (nVar = 10);
    • بزرگتر از (>) و کمتر از (10)؛
    • بزرگتر یا مساوی (>=) و کوچکتر یا مساوی (= 10);
    • نا برابر (). به عنوان مثال، If(nVar10);
    • مقایسه اشیاء (Is). تعیین می کند که آیا متغیرهای شی به یک شی اشاره دارند یا به موارد متفاوت. به عنوان مثال، اگر (obj1 obj2 است);
    • شباهت (لایک). یک شی رشته را با یک الگو مقایسه می کند و تعیین می کند که آیا الگو مطابقت دارد یا خیر.

    عملگرهای مقایسه همیشه برمی گردند درست است، واقعی(اگر جمله درست باشد) یا نادرست(اگر گفته نادرست باشد).

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

    • و - منطقی و هر دو شرط باید درست باشد.
    • یا - منطقی OR. حداقل یکی از شرایط باید درست باشد.
    • نه - نفی منطقی. اگر شرط نادرست باشد، True را برمی‌گرداند.
    • Xor یک استثنا منطقی است. در عبارت E1 Xor E2 اگر فقط E1 = True یا فقط E2 = True، در غیر این صورت False، True را برمی گرداند.
    • Eqv - معادل دو عبارت، اگر مقدار یکسانی داشته باشند True را برمی گرداند.
    • Imp - مفهوم، E1 Imp E2 اگر E1 = True و E2 = False، در غیر این صورت True است، False را برمی گرداند.

    شما باید به یاد داشته باشید در مورد و، یا، نه، سایر عملگرهای منطقی به ندرت استفاده می شوند.

    متغیرها- این ظروف برای ذخیره داده های قابل تغییر هستند. تقریباً هیچ برنامه ای نمی تواند بدون آنها کار کند. برای سادگی، یک متغیر را می توان با یک عدد در کمد مقایسه کرد - شما مقداری داده به کمد لباس می دهید و در پاسخ به شما یک عدد داده می شود. هنگامی که دوباره به این داده ها نیاز دارید، "شماره" را ارائه می کنید و آن را دریافت می کنید.

    هر متغیر یک نام دارد. یک متغیر با نام قابل دسترسی است. قوانین انتخاب نام در VBA برای بسیاری از عناصر (متغیرها، ثابت ها، توابع، رویه ها و غیره) یکسان است:

    • نام باید با یک حرف شروع شود؛
    • نباید دارای فاصله یا علامت های نقطه گذاری باشد (استثنا زیرخط است).
    • حداکثر طول - 255 کاراکتر؛
    • باید در محدوده فعلی منحصر به فرد باشد
    • کلمات رزرو شده (آنهایی که با رنگ آبی در پنجره ویرایشگر کد مشخص شده اند) قابل استفاده نیستند.

    هنگام ایجاد برنامه های VBA، توصیه می شود در مورد قوانین نامگذاری اشیاء تصمیم بگیرید - یک قرارداد نامگذاری. متداول ترین مورد استفاده قرارداد به اصطلاح مجارستانی است (به افتخار یکی از برنامه نویسان مایکروسافت، چارلز سیمونی، مجارستانی با ملیت):

    • نام متغیر باید با یک پیشوند شروع شود که با حروف کوچک نوشته شود. پیشوند نشان می دهد که دقیقاً چه چیزی در این متغیر ذخیره می شود:
      str (یا s) - رشته، مقدار کاراکتر.
      fn (یا f) - تابع؛
      رویه فرعی؛
      ج (یا تمام حروف نام بزرگ هستند) - ثابت(محفظه ای برای ذخیره داده ها که بر خلاف متغیرها در طول اجرای یک برنامه VBA تغییر نمی کند).
      ب - بولی، مقدار منطقی (درست یا نادرست)؛
      د - تاریخ؛
      obj (یا o) - مرجع شی.
      n - مقدار عددی؛
    • نام توابع، روش ها و هر کلمه در یک کلمه مرکب باید با حرف بزرگ شروع شود:
      MsgBox objMyDocument.Name
      Sub CheckDateSub()

    نوع دادهبه عنوان اساسی ترین مفاهیم هر زبان برنامه نویسی در نظر گرفته می شوند. یک نوع داده مجموعه ای از مقادیر معتبری را که یک مقدار (متغیر یا ثابت) می تواند انجام دهد و مجموعه اقداماتی که می تواند روی آن مقدار انجام شود را تعریف می کند.

    2. انواع داده های پایه VBA

    VBA انواع داده های زیر را ارائه می دهد:

    • عددی:
      بایت- یک عدد صحیح از 0 تا 255، برای ذخیره سازی مورد نیاز است 1 بایتحافظه;
      عدد صحیح- یک عدد صحیح از -32768 تا 32767، 2 بایت ;
      طولانی- یک عدد صحیح بزرگ از -2 147 483 648 تا 2 147 483 647، 4 بایت ;
      واحد پول(پولی) - بزرگ عدد اعشاریبا 19 موقعیت، شامل 4 رقم اعشار
      (از –922337203685477.5808 تا 922337203685477.5807) 4 بایت,
      هنگامی که دقت بسیار مهم است برای ذخیره اعداد استفاده می شود که هنگام محاسبه با واحدهای پولی اتفاق می افتد.
      اعشاری- یک عدد اعشاری حتی بزرگتر با 29 موقعیت (پس از نقطه اعشار می توانید از 0 تا 28 موقعیت استفاده کنید) 8 بایت;
      تنهاو دو برابر- مقادیر ممیز شناور ( 4 و 8 بایت)
      (از -3.402823·10 38 تا -1.401298·10 -45 برای مقادیر منفی و
      از 1.401298·10 -45 تا 3.402823·10 38 برای مقادیر مثبت برای Single، و
      از -1.79769313486232·10 308 تا -4.94065645841247·10 -324 برای مقادیر منفی و
      از 4.94065645841247·10 -324 تا 1.79769313486232·10 308 برای مقادیر مثبت برای Double)؛
    • رشته ( رشتهطول متغیر (تا حدود 2 میلیارد کاراکتر) و طول ثابت (تا حدود 65400 کاراکتر)).
    • تاریخ و زمان ( تاریخ- از 01.01.100 تا 31.12.9999) 8 بایت;
    • بولی ( بولی- فقط می تواند مقادیر True و False را ذخیره کند) 2 بایت;
    • هدف - شی ( هدف - شی- یک مرجع به هر شی را در حافظه ذخیره می کند.
    • گونه- یک نوع داده خاص که می تواند هر نوع داده ای را ذخیره کند، 16 بایت +1
    تعیین نوع داده ها کلمات کلیدی زبان هستند (و هنگام تایپ در ویرایشگر VBA برجسته می شوند). در بالا انواع مختلفعملیات مختلفی روی داده ها امکان پذیر است. سه نوع عملیات اصلی در VBA وجود دارد:
    • ریاضی، انجام شده بر روی اعداد، نتیجه آنها اعداد است.
    • عملیات رابطه ای را می توان نه تنها برای اعداد اعمال کرد، بلکه نتیجه آنها مقداری از نوع منطقی است.
    • منطقی، مورد استفاده در عبارات منطقیو نتیجه آنها مقادیر بولی است.

    3. اولویت های عملیات

    یک اولویت عمل
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    فراخوانی تابع و پرانتز
    ^
    - (تغییر علامت)
    *, /
    \
    مد
    +, –
    >, <, >=, <=, <>, =
    نه
    و
    یا
    Xor

    4. توابع ریاضی

    تابع ارزش برگشتی
    شکم(<число>) مدول (مقدار مطلق) یک عدد
    Atn(<число>) Arctangent
    Cos(<число>) کسینوس
    انقضا (<число>) توان، یعنی نتیجه افزایش پایه لگاریتم طبیعی به توان مشخص شده
    ثبت نام(<число>) لگاریتم طبیعی
    Rnd (<число>) عدد تصادفی از بازه [، عنوان]

    استدلال ها:

    پیام - یک آرگومان مورد نیاز که پیام اطلاعاتی را برای نمایش در پنجره مشخص می کند. می تواند شامل چندین خط متن باشد که با یک علامت به هم وصل شده اند & . استفاده در این استدلال Chr(13)هنگام خروجی اطلاعات به خط جدیدی منتهی می شود.

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

    سرفصل - عنوان پنجره را تنظیم می کند.

    تابع MsgBoxیک مقدار Integer برمی گرداند که نشان می دهد کدام دکمه در کادر محاوره ای کلیک شده است.

    جدول 3.1. مقادیر متغیر دکمه معتبر

    نمایش دادن

    بحث و جدل

    دکمه OK

    دکمه های OK و Cancel

    دکمه های بله و خیر

    دکمه های بله، خیر و لغو

    دکمه های توقف، تکرار و نادیده گرفتن

    VbAbortRetryIgnore

    دکمه های تلاش مجدد و لغو.

    علامت اطلاعات

    علامت سوال

    علامت تعجب

    مثلا. نمایش یک پیام در مورد تاریخ فعلی.

    MsgBox "امروز در تقویم" و تاریخ، "توجه"

    در نتیجه پنجره زیر نمایش داده می شود (شکل 3.1).

    پس از کلیک بر روی OK، کادر پیام بسته می شود و اجرای برنامه بلافاصله پس از فراخوانی MsgBox از دستور از سر گرفته می شود.

    3.3.2. تابع InputBox

    تابع InputBoxمقادیر متغیر را با استفاده از پنجره ورودی وارد می کند و دستور زیر را دارد:

    متغیر_نام = جعبه ورودی(پیام[، عنوان] )

    استدلال ها:

    پیام - استدلال مورد نیاز یک پیام اطلاعاتی را در پنجره تنظیم می کند که معمولاً معنای مقدار وارد شده را توضیح می دهد.

    سرفصل - عنوان پنجره را تنظیم می کند.

    مثلا، مقدار متغیر N را از صفحه کلید وارد کنید و مقدار پیش فرض 10 را ارائه کنید.

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

    N = InputBox ("N"، "ورودی ورودی"، 10)

    در نتیجه پنجره زیر برای وارد کردن مقدار متغیر N نمایش داده می شود (شکل 3.2).

    اگر مقدار پیش فرض برای کاربر قابل قبول باشد، پس از کلیک بر روی دکمه OK، پنجره ورودی بسته می شود، متغیر N روی 10 تنظیم می شود و اجرای برنامه از عبارت بلافاصله در پشت تماس از سر گرفته می شود. InputBox.

    اگر مقدار پیش فرض برای کاربر مناسب نیست، قبل از کلیک بر روی دکمه OK، باید مقدار مورد نظر را برای متغیر N وارد کنید.

    3 .4. عبارت IF شرطی

    برای پیاده سازی یک فرآیند محاسباتی انشعاب در VBA از عملگر استفاده می شود اگر...پس...دیگرکه ساده ترین شکل بررسی شرایط است. دارای نحو زیر است:

    اگروضعیتسپسOPERATOR_1ElseOPERATOR_2

    OPERATOR_1اجرا می شود اگر وضعیتدرست است، در غیر این صورت اجرا می شود OPERATOR_2. در این حالت عبارت If...Then...Else در یک خط نوشته می شود.

    وضعیتیک عبارت بولی است. نتیجه یک عبارت همیشه Boolean است. یک عبارت می تواند ساده یا پیچیده باشد. هنگام نوشتن شرایط ساده، می توان از تمام عملیات رابطه ای ممکن فهرست شده در جدول استفاده کرد. 3.2.

    جدول3 .2. روابط منطقی

    عمل

    نام

    اصطلاح

    نتیجه

    درست است اگر A برابر B باشد

    اگر A برابر با B نباشد درست است

    درست است اگر A بزرگتر از B باشد

    اگر A کمتر از B باشد درست است

    بیشتر یا برابر

    اگر A بزرگتر یا مساوی B باشد درست است

    کمتر یا مساوی

    اگر A کمتر یا مساوی B باشد درست است

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

    جدول3 .3. عملیات منطقی

    نام

    اصطلاح

    نتیجه

    بولی
    نفی

    منطقی و

    منطقی OR

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

    اگروضعیتسپس

    BLOCK_OPERATORS_1

    BLOCK_OPERATORS_2

    پایان If

    یک دستور شرطی می تواند چندین شرط را آزمایش کند. در این مورد، عملگر شرطی به نظر می رسد:

    اگرCONDITION_1سپس

    BLOCK_OPERATORS_1

    اگر دیگرCONDITION_2سپس

    BLOCK_OPERATORS_2

    دیگر

    پایاناگر

    مثال 1. بخشی از برنامه را برای الگوریتم در شکل بنویسید. 3.3.

    مثال 2.بخشی از برنامه را برای الگوریتم در شکل بنویسید. 3.4.

    3.5. اپراتور Case را انتخاب کنید

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

    انتخاب موردبیان تحت آزمون

    موردVALUES_1

    OPERATORS_1

    موردارزش های_ 2

    اپراتورها_ 2

    . . .

    موردVALUES_N

    اپراتورها

    [ مورددیگر

    در غیر این صورت_ اپراتورها]

    پایان انتخاب کنید

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

    تایپ کنید ارزش هایباید با نوع مطابقت داشته باشد TEST_EXPRESSION.

    ابتدا محاسبه می شود بیان تحت آزمون. اگر مقدار آن با یکی از مقادیر مطابقت داشته باشد VALUES_I، سپس آنها برآورده می شوند OPERATORS_I پایان انتخاب کنید. اگر مقدار آن با هیچ یک از مقادیر مطابقت نداشته باشد VALUES_I، سپس آنها برآورده می شوند ELSE_OPERATORSو کنترل به اپراتور ایستاده پس از آن منتقل می شود پایان انتخاب کنید

    مثلا.بخشی از برنامه را برای الگوریتم در شکل بنویسید. 3.5 که مقدار متغیر S را بسته به مقدار متغیر n تعیین می کند.

    3.6. عبارات حلقه

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

    برایCOUNTER=START_VALUEتیoCON_VALUEگامگام

    OPERATOR_BLOCK

    OPERATOR_BLOCK

    بعدپیشخوان

    حلقه For…Next از میان مقادیر یک متغیر حلقه می زند پیشخوان، که یک پارامتر حلقه است، از مقدار اولیه تا نهایی با مرحله تغییر مشخص شده. این تضمین می کند که بلوک دستورات بدنه حلقه با هر مقدار شمارنده جدید اجرا می شود. اگر گامگامدر طراحی وجود ندارد، سپس به طور پیش فرض فرض می شود که گام برابر با 1 است. با توجه به اپراتور خروج برایمی توانید از دستور حلقه قبل خارج شوید پیشخوانبه آخرین مقدار می رسد.*

    برای تکرار از طریق اشیاء از گروهی از اشیاء مشابه، به عنوان مثال، سلول های یک محدوده یا عناصر آرایه، استفاده از عملگر حلقه راحت است. برای…هر… بعدی.

    برای هرعنصرکه درگروه

    مسدود کردن_ اپراتورها

    OPERATOR_BLOCK

    بعدعنصر

    در VBA، سایر عملگرهای حلقه برای سازماندهی حلقه ها با تعداد تکرار نامشخص استفاده می شوند:

    حلقه ها با پیش شرط - انجام دادندر حالی کهحلقه,

    انجام دادنتا زمانحلقه;

    حلقه ها با شرط پست - انجام دادنحلقهدر حالی که,

    انجام دادنحلقهتا زمان.

    در زیر نحو این دستورات حلقه آمده است:

    "حلقه با پیش شرطانجام دادن در حالی که حلقه

    انجام در حالی کهوضعیت

    OPERATOR_BLOCK

    OPERATOR_BLOCK

    "حلقه با پیش شرطانجام دادن تا زمان حلقه

    انجام دادنتا زمانوضعیت

    OPERATOR_BLOCK

    OPERATOR_BLOCK

    "حلقه با شرط پستانجام دادن حلقه در حالی که

    مسدود کردن_ اپراتورها

    OPERATOR_BLOCK

    حلقه در حالی کهوضعیت

    "حلقه با شرط پستانجام دادن حلقه تا

    مسدود کردن_ اپراتورها

    OPERATOR_BLOCK

    حلقه تاوضعیت

    اپراتور انجام دادندبلیوهیله ... حلقهتضمین می کند که یک بلوک از عبارات چندین بار تکرار می شود تا زمانی که وضعیتمشاهده می شود و اپراتور



    اخبار دیگر

    دستورالعمل های زبان (یا عملگرها)- اینها واحدهای برنامه ای هستند که برخی از اقدامات را انجام می دهند یا داده ها را توصیف می کنند.

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

    در بارهپ گردانندهتکالیف

    عملگر انتساب برای تخصیص یک مقدار جدید به یک متغیر در حین اجرای برنامه استفاده می شود. علامت تکلیف "=".

    مثلا، اپراتور:

    x = Sqr(5 + Tan(1.8)^2)

    به متغیر x مقدار عبارت را اختصاص می دهد. در نتیجه محاسبه عبارت نوشته شده در سمت راست یک عدد واقعی بدست می آوریم. اما مقداری که به متغیر x نسبت داده می شود بستگی به نحوه اعلان نوع آن متغیر دارد. بنابراین، اگر متغیر x از نوع Single باشد، نتیجه 4.834464، اگر Double باشد، 4.83446368725481 و اگر عدد صحیح باشد، 5 به آن اختصاص می‌یابد.

    نوع داده متغیر x باید با نوع داده این عبارت سازگار باشد. ویژوال بیسیک علاوه بر تبدیل ضمنی از یک نوع به نوع دیگر در حین انتساب، امکان تبدیل انواع با استفاده از توابع را فراهم می کند. به عنوان مثال، تابع CDblداده ها را به نوع Double تبدیل می کند، سینت- به نوع عدد صحیح، Clng- به نوع Long، CSng- به نوع Single، CStr– برای تایپ String و غیره

    توابع CINT و Clng نتیجه را گرد می کنند. علاوه بر این، اگر جزء کسری یک عدد 0.5 باشد، گرد کردن به نزدیکترین عدد زوج انجام می شود.

    اپراتور واگذاریبه شما امکان می دهد نه تنها یک مقدار را به یک متغیر اختصاص دهید، بلکه مقادیر ویژگی های اشیاء VBA را نیز تنظیم کنید. مثلا اپراتور

    ردیف ("1:1"). قلم. پررنگ = درست

    فونت خط اول کاربرگ را پررنگ می کند.

    خط شکست

    ترکیبی<Пробел> + <Знак подчеркивания>در پایان یک خط اطمینان حاصل می کند که خط بعدی ادامه خط قبلی است. در عین حال باید به یاد داشته باشیم که:

    § نمی توانید ثابت های رشته را با بسته بندی بشکنید

    § بیش از هفت ادامه همان خط مجاز نیست

    § خود خط نمی تواند بیش از 1024 کاراکتر داشته باشد

    مثال.

    انتقال نادرست انتقال صحیح

    Line = "Visual Basic for _ Line = "Visual Basic" _

    برنامه ها" و "برای برنامه ها"

    نظرات

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

    مشروط اپراتور

    یک دستور شرطی بسته به مقدار عبارت شرط، دستورات (گزاره‌های) خاصی را اجرا می‌کند. بلوک دیاگرام برای بررسی شرایط به صورت زیر است:

    برنج. 1. انشعاب ممکن است ناقص باشد (به این ساختار بای پس نیز گفته می شود).

    برنج. 2. دستور شرطی دارای دو شکل نحو است: خط و بلوک.

    فرم کوچک

    اگر وضعیتسپس [ operators_if_true]

    الگوریتم ارائه شده در شکل. 1 به صورت حروف کوچک به صورت نوشته خواهد شد

    اگر وضعیتسپس operators_if_trueدیگر operators_if_false

    شکل 2 مربوط به ورودی است

    اگر وضعیتسپس operators_if_true

    شکل 3 مربوط به ورودی است

    اگر وضعیتسپس دیگری operators_if_false

    فرم بلوک

    اگر شرط-1سپس

    [operators_if condition–1_true]

    [operators_if_all_conditions_false]]

    شرایط ذکر شده در قسمت های If و ElseIf عبارت های رابطه ای یا عبارات منطقی هستند. هنگامی که یکی از شرایط برآورده شد، عبارات پس از کلمه کلیدی متناظر آن اجرا می شوند و عبارات باقی مانده نادیده گرفته می شوند (یعنی هیچ آزمایش دیگری انجام نمی شود و کنترل به دستور بعد از End If منتقل می شود). اگر هیچ یک از شرایط منطقی درست نباشد، پس operators_if_all_previous_conditions_false، یا اگر این قسمت حذف شود، کنترل به دنبال دستور شرطی به خط برنامه منتقل می شود.

    فرم بلوک دستور If ترجیح داده می شود اگر:

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

    چندین شرط به صورت متوالی بررسی می شوند و هنگامی که شرط بعدی برآورده می شود، بررسی شرایط بعدی نامناسب است (به همین دلیل از کلمه کلیدی ElseIf استفاده می شود).

    مثال

    این شرکت به خریداران عمده تخفیف می دهد.

    بر اساس حجم مشخص سفارش، لازم است هزینه آن مشخص شود.

    برای محاسبه هزینه سفارش از تابع استفاده می کنیم:

    عملکرد عمومی Order_Cost (تعداد به مدت) به عنوان دو برابر

    اگر مقدار<= 999 Then

    Order_cost = تعداد * 5

    مقدار ElseIf<= 1999 Then

    Order_cost = مقدار * 4.8

    Order_cost = مقدار * 4.75

    در این مورد، می توان از شکل کوچک عملگر IF استفاده کرد:

    تابع عمومی Order_Cost1 (تعداد به مدت) به عنوان دو برابر

    اگر مقدار<= 999 Then Стоимость_заказа1 = Количество * 5

    اگر مقدار >= 1000 و مقدار<= 1999 Then Стоимость_­ заказа1 = Количество * 4.8

    اگر مقدار >= 2000 سپس Order_Cost1 = مقدار * 4.75

    اگر مضرات طولانی بودن خطوط را در نظر نگیریم، و برای هر حجم سفارشی، همه بررسی ها به صورت متوالی انجام می شود (روش اول برای حجم های کوچک سفارش سریعتر عمل می کند)، برنامه به درستی و شاید حتی واضح تر نوشته می شود.

    با این حال، می توان مثال هایی ارائه داد که اگر یکی از شرایط برآورده شود (یا برآورده نشده باشد)، بقیه به سادگی قابل بررسی نیستند.

    مثلا، برخی از اپراتورها باید زمانی که شرایط به طور مشترک برآورده می شوند اجرا شوند: http://po-teme.com.ua/images/adIIIin/image014_e652e49476c6f0eb9cf40b68cc090828.gif" alt="" width="56" height="27 src="> اگر برای چک از عملگر استفاده کنید

    اگر x>0 و y

    سپس اگر x منفی باشد، هنگام فراخوانی تابع sqr خطایی رخ می دهد (ریشه یک عدد منفی است).

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

    اگر x > 0 سپس اگر y< Sqr(x) Then

    در آخرین شکل ورودی، اگر کلمه کلیدی Else وجود داشته باشد، به آخرین دستور If اشاره می کند.

    اپراتور انتخاب

    انتخاب مورد اصطلاح

    [دستورالعمل ها_دیگر]]

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

    مقادیر برای مقایسه گنجانده شده است express_list-nرا می توان به شکل زیر مشخص کرد:

    - ارزش های؛

    - محدوده مقادیر در فرم مقدار اولیهبه ارزش_نهایی;

    – عبارات مقایسه ای به شکل Is مقدار مقایسه_اپراتور;

    - فهرستی از هر یک از انواع عبارات فهرست شده (جداکننده - کاما).

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

    به عنوان مثال، اگر شرط نمره بالاتر از سه باشد، می توان این شرط را نوشت: Case 4، 5 یا Case Is >3 یا Case Is >= 4 یا Case 4 to 5.

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

    مثال

    مثال بالا با قیمت تخفیف خورده با استفاده از ساختار Select Case به صورت زیر قابل حل است:

    عملکرد عمومی Order_Cost2 (تعداد به مدت) به عنوان دو برابر

    مقدار مورد را انتخاب کنید

    Order_cost2 = مقدار * 5

    مورد 1000 تا 1999

    Order_cost2 = مقدار * 4.8

    مورد >= 2000 است

    Order_cost2 = مقدار * 4.75

    برنامه VBA دنباله ای از عبارات است.

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

    هر خطی را می توان با قرار دادن کاراکترهای "Space" + "Underscore" (_) در انتهای خط اول به دو قسمت تقسیم کرد، در این صورت خط دوم ادامه خط اول در نظر گرفته می شود.

    از نظرات برای سهولت خواندن برنامه استفاده می شود. دو راه برای وارد کردن نظرات در VBA وجود دارد: استفاده از آپوستروف (‘)، که می تواند در هر نقطه از یک خط قرار گیرد، و استفاده از کلمه رزرو شده Rem به جای آپستروف.

    1. عملگر کم نوربرای اعلان انواع متغیرها در نظر گرفته شده است.

    1. کم نور A به عنوان عدد صحیح - متغیر A به عنوان یک عدد صحیح اعلام می شود، یعنی. فقط مقادیر صحیح را ذخیره می کند .

    2. کم نور D به عنوان تاریخ - متغیر D برای ذخیره تاریخ ها اعلام می شود.

    3. نام خانوادگی کم رنگ، نام به عنوان رشته - متغیرها اعلام می شوند. نام خانوادگی و نام، در نظر گرفته شده برای ذخیره متن.

    4. Dim B(12) به عنوان عدد صحیح - یک آرایه یک بعدی (بردار) متشکل از 12 عدد صحیح اعلام می شود و به طور پیش فرض اولین عنصر آرایه B(0) و آخرین عنصر B(12) خواهد بود.

    5. کم نور B(3،3) به عنوان مجرد - یک آرایه دو بعدی 3x3 (ماتریس) متشکل از اعداد واقعی اعلام شده است.

    اگر نوع متغیری مشخص نشده باشد، نوع پیش‌فرض Variant است. با این حال، تعیین نوع خاصی از متغیر باعث اطمینان بیشتر برنامه و سرعت بخشیدن به عملکرد آن می شود، زیرا VBA نیازی به هدر دادن زمان برای شناسایی متغیرهای اعلام نشده در هر بار دسترسی به آن ندارد.

    اگر اندازه آرایه M از قبل مشخص نباشد و در طول برنامه مشخص شود، در هنگام توصیف آرایه تعداد عناصر نشان داده نمی شود و آرایه به صورت زیر تعریف می شود:

    Dim M() به عنوان عدد صحیح

    پس از تعیین تعداد عناصر آرایه، به عنوان مثال، N، باید عملگر را بنویسید

    2. اپراتور واگذاریدر نظر گرفته شده است که یک مقدار را به یک متغیر اختصاص دهد.

    نحو:

    متغیر (یا ویژگی شی) = عبارت.

    1. a = 5 - به متغیر A مقدار 5 را اختصاص دهید ;

    2. b = "مدیر" - متغیر ب اختصاص دهدبه معنی "مدیر";

    · آدرس = برگه ها ("سازمان ها"). سلول ها (2،2) - به متغیر Address محتویات سلول B2 را که در برگه Organizations در کتاب کار فعلی قرار دارد، اختصاص دهید.

    نام خانوادگی=UserForm1.TextBox1.Text – متغیر نام خانوادگی به محتویات فیلد TextBox1 فرم کاربری UserForm1 اختصاص داده می شود.

    o با / پایان با بیانیهبرنامه نویس را از تعداد زیادی تکرار نام همان شی نجات می دهد.

    نحو:

    با شی

    عملگر 1

    عملگر 2

    operatorN

    به عنوان مثال، به جای دنباله ای از عبارات

    UserForm1.TextBox1.Text = تاریخ

    UserForm1.TextBox2.Text = " "

    UserForm1.ComboBox1.Text = " "

    را می توان اینگونه نوشت

    TextBox1.Text = تاریخ

    . TextBox2.Text = " "

    . ComboBox1.Text = " "

    REM در ورق 1 در ستون A، با شروع از خط دوم، "تعرفه های کارکنان" نوشته شده است. کادر ترکیبی ComboBox1 را در فرم کاربری UserForm1 پر کنید

    خط اول برنامه - در برگه Sheet1 در ستون A، تعداد سلول های پر شده شمارش می شود، نتیجه به متغیر N اختصاص می یابد.

    N=Application.CountA(Sheets("Sheet1"). Range("A:A")).

    D=”A2:A”&Cint(N)

    Sheets("Sheet1").Range(D).Name="Tariffs"

    TextBox1.Text = تاریخ

    . TextBox2.Text = " "

    . ComboBox1.Text = " "

    . ComboBox1.Rowsource = "تعرفه ها"

    1. عبارت شرطی If/Then/Else- به شما امکان می دهد شرایط خاصی را بررسی کنید و بسته به نتایج بررسی، یک یا عمل دیگری را انجام دهید

    نحو:

    اگروضعیت سپسعملگرها 1 [ دیگرعملگرها 2]

    اگر شرط درست باشد، دستورات 1 و در غیر این صورت دستورات 2 اجرا می شوند.

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

    اگرشرط 1 سپس

    اپراتورها 1

    اگر دیگرشرط 2 سپس

    عملگرها 2

    عملگرها 3

    نام خانوادگی=.TextBox1.Text

    اگر نام خانوادگی =”” سپس MsgBox” شما نام خانوادگی وارد نکرده اید”

    REM هنگامی که چک باکس شماره 1 علامت زده می شود، به مشتری 5٪ تخفیف داده می شود

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

    هزینه محصول در متغیر Cost ذخیره می شود

    اگر UserForm1.CheckBox1.Value = True then

    مقدار=هزینه-هزینه*0.05

    مقدار دیگر = هزینه

    1) REM فرض کنید که Tariff تعرفه تعیین شده است و Time زمان کار شده است. زمان و تعرفه به ترتیب در فیلدهای ورودی «در TextBox1 و TextBox2» وارد می‌شوند. حقوق با استفاده از فرمول تعرفه*زمان محاسبه می شود. بیایید برنامه ای بنویسیم تا حقوق محاسبه شده در فرم نمایش داده شود. برچسب 4 - کتیبه آماده شده برای "نمایش ارزش حقوق و دستمزد"

    اگر IsNumeric(TextBox1.Text)=True و _

    IsNumeric(TextBox2.Text)=True then

    Tariff=TextBox1.Text

    Time=TextBox2.Text

    Label4.Caption=تعرفه*زمان

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

    در مثال دوم، خطوط اول که با کلمه REM و apostrophes شروع می‌شوند، کامنت‌هایی هستند که هدف متغیرها را توضیح می‌دهند. اپراتور مشروط مبلغ پرداختی توسط مشتری را تعیین می کند.

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

    1) عملگر پرش بدون قید و شرط رفتن بهبرای تعیین یک انتقال به یک خط مشخص در یک برنامه در نظر گرفته شده است.

    نحو:

    GoTo String

    آرگومان مورد نیاز رشته می تواند هر برچسب خط یا شماره خط باشد.

    اگر IsNumeric(TextBox1.Text)=False است، خطا برو به

    خطا: MsgBox "خطا در وارد کردن اعداد!"

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

    2) عملگر حلقه برای/به/بعدیطراحی شده برای برنامه نویسی قطعات تکرار شونده، یعنی. برای توصیف الگوریتم های چرخه ای

    نحو:

    برایمتغیر=M1 به M2[ گام M3]

    اپراتورها

    M1، M2، M3 - عبارات. یک دستور حلقه اجرای گروهی از عبارات را تکرار می کند در حالی که متغیر (counter) از مقدار اولیه M1 به مقدار نهایی M2 با مرحله مشخص شده M3 تغییر می کند. اگر مرحله مشخص نشده باشد، 1 در نظر گرفته می شود.

    نام خانوادگی = برگه ها ("کارمندان"). سلول ها (I,1)

    UserForm1.ComboBox1.AddItem نام خانوادگی

    در مثال ارائه شده، فرض بر این است که در برگه "کارمندان"، ستون اول شامل نام کارمندانی است که باید در لیست جعبه ترکیبی شماره یک فرم کاربر شماره یک قرار گیرند. الگوریتم عملیات برنامه:

    1) به متغیر I مقدار 2 اختصاص داده می شود.

    2) به متغیر Last Name مقدار سلول A(I,1) که در برگه "Employees" قرار دارد اختصاص داده می شود. (زمانی که حلقه برای اولین بار اجرا می شود، این سلول A(2،1) است)

    3) یک عنصر از متغیر Last Name به لیست جعبه ترکیبی ComboBox1 اضافه می شود.

    4) 1 به مقدار متغیر I اضافه می شود (اگر مرحله مشخص نشده باشد، برابر با 1 در نظر گرفته می شود). بررسی می شود که آیا مقدار I از 10 بیشتر شده است (مقدار نهایی متغیر I در مثال M3=10)؟ اگر مقدار I حتی کمتر یا مساوی 10 باشد، مراحل 2-4 انجام می شود، در غیر این صورت چرخه به پایان می رسد.

    بنابراین، برنامه فوق به شما امکان می دهد لیست ComboBox1 را با داده ها پر کنید.

    الگوریتم های اساسی مورد استفاده در حل
    وظایف اقتصادی

    بیایید با استفاده از مثال زیر به الگوریتم های اصلی نگاه کنیم. کارمندان بخش های مختلف در اجرای کار تحت قرارداد مشارکت داشتند. جدول روی برگه "Sheet1" داده های مربوط به تعداد ساعات کار هر کارمند را ارائه می دهد (شکل 8).


    شکل 8. داده های مربوط به تعداد ساعات کار

    کارکنان شرکت


    دنیای برنامه های رایگان و نکات مفید
    2024 whatsappss.ru