انواع متغیر ویژوال پایه. زبان برنامه نویسی ویژوال بیسیک

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

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

Dim VariableName As VariableType

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

مثلا:
کم نور به عنوان بایت
متغیر اعلام شد آنوع بایت ها. در چنین متغیری می توانید عددی از 0 تا 255 قرار دهید. وقتی می خواهید متغیری را اختصاص دهید. بیشتریک خطا رخ خواهد داد، و تعداد داشتن قسمت کسریگرد خواهد شد.

Dim b به عنوان رشته
متغیر اعلام شد بنوع رشته. این متغیر حاوی متن خواهد بود (اگرچه متن می تواند اعداد باشد، اما 2 به علاوه 3 23 است).

هنگام اعلان چندین متغیر، می توانید آنها را با استفاده از آن برشمارید کاما:
Dim a As Byte، b به عنوان رشته

بعد از خط اعلان، می توانید مقداری را به یک متغیر اختصاص دهید.

مثلا:
کم نور به عنوان بایت
a=5

ویژوال بیسیک همچنین به شما اجازه می دهد تا انواع داده های خود را ایجاد کنید. این ویژگی زمانی مهم است که با گروهی از عناصر داده سروکار دارید که به یکدیگر مرتبط هستند اما به دسته های مختلف داده تعلق دارند. می توانید انواع خود را (UDT - نوع تعریف شده توسط کاربر) با دستور Structure ایجاد کنید و متغیرهای مربوط به این انواع جدید را با دستور Dim اعلام کنید. اما به خاطر داشته باشید که دستور Structure را نمی توان در یک رویه رویداد قرار داد - باید در بالای کد فرم همراه با سایر اعلان های متغیر یا در کد ماژول قرار گیرد.

به عنوان مثال، اعلان زیر یک نوع داده سفارشی به نام Employee ایجاد می کند که می تواند نام، تاریخ تولد و تاریخ استخدام یک کارمند معین را ذخیره کند:

Structure Employee Dim Name as String Dim DateOfBirth as Date Dim HireDate as Date End Structure

هنگامی که یک نوع داده ایجاد شد، می توانید از آن در کد فرم یا در رویه های رویداد ماژول استفاده کنید. عبارات زیر از نوع جدید Employee استفاده می کنند. دستور اول متغیری به نام ProductManager از نوع Employee ایجاد می کند و دستور دوم مولفه Name این متغیر را با نام "Eric Cody" تنظیم می کند:

ProductManager به عنوان کارمند ProductManager.Name = "Eric Cody"

به نظر می رسد تنظیم خواص، اینطور نیست؟ ویژوال بیسیک از همان علامت گذاری برای روابط بین اشیا و خصوصیات استفاده می کند که برای روابط بین انواع داده های تعریف شده توسط کاربر و اجزای متغیر استفاده می کند.

ثابت ها: متغیرهایی که تغییر نمی کنند

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

Const Pi As Double = 3.14159265

این دستور یک ثابت به نام Pi ایجاد می کند که می تواند به جای مقدار pi در کد برنامه استفاده شود. برای در دسترس قرار دادن یک ثابت برای همه اشیا و رویه‌های رویداد در فرم خود، این عبارت را در بالای کد فرم خود به همراه سایر اعلان‌های متغیر و ساختاری که در محدوده همه رویه‌های رویداد فرم شما قرار دارند، قرار دهید. برای در دسترس قرار دادن یک ثابت از همه فرم‌ها و ماژول‌های برنامه (نه فقط از Form1)، یک ثابت در کد ماژول با پیشوند آن با کلمه کلیدیعمومی. مثلا:

Public Const Pi As Double = 3.14159265

در تمرین زیر از ثابت ها در رویه رویداد استفاده خواهیم کرد.

استفاده از یک ثابت در رویه رویداد
  1. از منوی File گزینه Open را انتخاب کرده و سپس روی Project کلیک کنید. کادر گفتگوی Open Project ظاهر می شود.
  2. پروژه Constant Tester واقع در پوشه را باز کنید c:\vbnet03sbs\ch.5\تستر ثابت.
  3. اگر فرم پروژه نمایش داده نشد، روی Form1.vb در Solution Explorer کلیک کنید و سپس روی دکمه View Designer کلیک کنید. یک فرم در Windows Forms Designer ظاهر می شود تست ثابت. Constant Tester "اسکلت" برنامه است. رابط کاربری کامل است، اما باید کد برنامه را وارد کنید.
  4. روی دکمه دوبار کلیک کنید نمایش ثابتتشکیل می دهد. رویه رویداد Button1_Click در ویرایشگر کد ظاهر می شود.
  5. عبارات زیر را در رویه رویداد Button1_Click وارد کنید:

    Const Pi As Double = 3.14159265 Label1.Text = Pi

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

    برای اجرای برنامه، روی دکمه Start در نوار ابزار استاندارد کلیک کنید.

    روی دکمه کلیک کنید نمایش ثابت. ثابت Pi مانند شکل زیر در قسمت برچسب ظاهر می شود.

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

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

زبان برنامه نویسی ویژوال بیسیک. انواع داده ها توصیف متغیرها، ثابت ها، آرایه ها

نوع دادهروشی است که در آن داده ها در یک سیستم کامپیوتری ذخیره و ارائه می شوند.

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

بایت یک عدد صحیح غیر منفی است. مقادیر از 0 تا 255 را می پذیرد، 1 بایت را اشغال می کند.

Boolean - یک مقدار منطقی. یکی از دو مقدار True و False را می گیرد، 2 بایت را اشغال می کند.

واحد پول - عدد اعشاری توسعه یافته. برای انجام محاسبات پولی با تعداد ثابت رقم اعشار استفاده می شود، 8 بایت را اشغال می کند. (حداکثر 15 رقم در سمت چپ اعشار و حداکثر تا 4 رقم در سمت راست اعشار).

تاریخ - تاریخ. برای ذخیره تاریخ/زمان استفاده می شود، 8 بایت را اشغال می کند.

عدد اعشاری با دقت دو برابر، 8 بایت را اشغال می کند.

عدد صحیح - مقدار عدد صحیح کوتاه، 2 بایت را اشغال می کند. برای نمایش اعداد صحیح در محدوده -32768 تا 32767 استفاده می شود.

عدد صحیح طولانی - طولانی، 4 بایت را اشغال می کند. برای نمایش اعداد صحیح در محدوده -2147483648 تا 2147483647 استفاده می شود.

یک عدد اعشاری از دقت معمولی، 4 بایت را اشغال می کند. برای نمایش اعداد منفی در محدوده -3.402823E 38 تا -1.401298E-45 و برای نشان دادن اعداد مثبت در محدوده 1.401298E-45 تا 3.402823E 38 استفاده می شود.

رشته - رشته طول متغیر. حافظه اشغال شده به صورت خطی به تعداد کاراکترهای رشته بستگی دارد.

رشته * طول - رشته ای با طول ثابت.

متغیر - مقدار دلخواه. استفاده شده برای ذخیره سازی داده هاهر نوع اگر مقدار یک رشته باشد، 16 بایت به اضافه یک بایت در هر کاراکتر را اشغال می کند.

شیء - یک شیء. فقط برای ذخیره ارجاع به اشیا استفاده می شود، 4 بایت را اشغال می کند.

متغیریک ناحیه نام‌گذاری شده از حافظه است که برای ذخیره داده‌هایی که در طول اجرای برنامه تغییر می‌کنند طراحی شده است. برای دسترسی به محتویات این ناحیه حافظه کافی است نام متغیر را بدانید.

نام متغیر (شناسه) یک رشته کاراکتر است که این متغیر را از سایر اشیاء برنامه متمایز می کند (متغیر موجود در برنامه را مشخص می کند).

هنگام نامگذاری متغیرها، قوانین زیر باید رعایت شود:

اولین کاراکتر نام باید یک حرف باشد. کاراکترهای باقی مانده حروف و اعداد هستند (حروف بزرگ و کوچک متفاوت هستند). می توانید از کاراکتر "_" استفاده کنید.

  • کاراکتر "." را نمی توان در نام استفاده کرد.
  • تعداد کاراکترهای نام نباید از 255 تجاوز کند.
  • نام متغیر نباید با کلمات رزرو شده (سرویس) زبان منطبق باشد.

ویژوال بیسیک دارای ویژگی های زیر است. اعلان های نوع متغیر

  1. متغیر ممکن است اصلاً اعلام نشود. در این حالت نوع پیش فرض Variant خواهد بود. با این حال، این می تواند منجر به عملکرد کند، ناکارآمد برنامه و استفاده بیهوده از حافظه شود.
  2. یک متغیر را می توان به صراحت با استفاده از عبارت تعریف متغیر اعلام کرد:Dim VariableName [ As VariableType]،
    برای مثال: Dim d as Long.
    برای اینکه همیشه متغیرها را به طور واضح اعلام کنید، از گزینه Option Explicit در بخش (General) (Declarations) فرم ها، ماژول ها یا کلاس های موجود استفاده کنید. پس از تنظیم این گزینه، ویژوال بیسیک به اعلان صریح متغیرها نیاز دارد و اگر از متغیر اعلام نشده در کد استفاده شود، پیام خطا ایجاد می کند.
  3. یک متغیر را می توان به طور ضمنی اعلام کرد:

    با عملگر اعلام نوع:

DefType حرف اولیه [- حرف پایانی];

به جای OrgType، یکی از کلمات کلیدی نشان دهنده نوع نشان داده شده است:

Deflnt (برای نوع Integer)؛
- DefLng (برای نوع طولانی)؛
- DefSng (برای نوع Single)؛
- DefStr (برای نوع رشته) و غیره.

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

- % - نوع عدد صحیح؛
- & - نوع بلند؛
- ! - نوع تک؛
- # - نوع دوتایی؛
- $ - نوع رشته؛
- @ - نوع پول رایج.

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

ثابت ها- مقادیری که مقادیر آنها قابل تغییر نیست. مانند متغیرها، ثابت ها در ابتدای متن کد برنامه توسط اپراتور اعلام می شوند:

Const ConstantName = Value، به عنوان مثال: Const Pi = 3.14159

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

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

تعریف آرایه توسط عملگر انجام می شود:

Dim VariableName([LowerLimitTo]
حد بالا) .

به عنوان مثال: Dim b (a تا 15) - اعلان آرایه b، متشکل از 15 عنصر.

ویژوال بیسیک به طور پیش‌فرض، عناصر یک آرایه را ایندکس می‌کند که از صفر شروع می‌شود، یعنی شاخص 0 نشان‌دهنده اولین عنصر آرایه، شاخص 1 دومین عنصر و غیره است. دستور Option Base 1 به شما امکان می دهد یک آرایه نمایه سازی شده از 1 را مشخص کنید. این عبارت باید در بخش (General) (Declarations) باشد.

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

کار آزمایشگاهی شماره 3.مروری بر انواع داده های VB. متغیرها و

ثابت ها سازگاری نوع داده اپراتور واگذاری عملگرهای حسابی و منطقی توابع داخلی

هدف درس:انواع داده ها را بشناسید نحوه ایجاد متغیرها را بدانید. نحوه تخصیص انواع داده به متغیرها را بدانید. قادر به ایجاد ثابت های نام گذاری شده باشید. دامنه را بشناسید

متغیرها و ثابت ها تبدیل نوع را بدانید نحوه استفاده از عملگر انتساب را بدانید. عملیات حسابی و منطقی را بدانید. نحوه استفاده از الحاق رشته ها را بدانید. نحوه استفاده از توابع VBA داخلی را بدانید. مواد برای درس: MS Excel 2003.

مروری بر انواع داده هادیداریپایه ای (VB)

قبل از یادگیری در مورد متغیرها، باید بدانید که VBA چگونه انواع مختلف اطلاعات را ذخیره می کند. VBA مانند اکثر سیستم های برنامه نویسی دیگر، داده های پردازش شده را به اعداد، تاریخ، متن و انواع دیگر جدا می کند. نوع داده(داده ها نوع) اصطلاحی است که به انواع خاصی از داده ها اشاره دارد که VBA ذخیره می کند و می تواند دستکاری کند. روی میز. 9 نوع تعمیم یافته داده های VBA، نشان می دهد که هر نوع چقدر حافظه اشغال می کند، به طور خلاصه انواع داده ها را توصیف می کند و محدوده مقادیری را که نوع می تواند ذخیره کند را ارائه می دهد.

جدول 9– انواع داده VBA

اسم را تایپ کن

اندازه دربایت ها

اعداد صحیح مثبت از 0 تا 255

اعداد صحیح از -32768 تا 32767

اعداد صحیح بلند از -2147483648 تا 2147483647

اعداد واقعی از دقت معمولی با

نقطه شناور.

اعداد منفی:

از -3.402823E38 تا -1.401298E-45.

اعداد مثبت:

از 1.401298Е-45 تا 3.402823Е38

اعداد واقعی با دقت دو برابر

نقطه شناور.

اعداد منفی:

از -1.79769313486232E308 به

4.94065645841247E-324.

اعداد مثبت:

از 4.94065645841247E-324 به

1.79769313486232E308

اعداد با حداکثر 15 رقم قبل از نقطه اعشار و 4 رقم بعد از آن (واحد ارز). -922337203685477.5808 تا 922337203685477.5807

برای ذخیره مقادیر بولی؛ فقط می تواند حاوی مقادیر True (True) یا False (False) باشد

اسم را تایپ کن

اندازه دربایت ها

شرح و محدوده ارزش

برای ذخیره ترکیبی از اطلاعات تاریخ و زمان. محدوده تاریخ می تواند از 1 ژانویه 100 تا 31 دسامبر 9999 باشد. محدوده زمانی از 00:00:00 تا 23:59:59

رشته (رشته با طول متغیر)

10 بایت + برای ذخیره متن استفاده می شود. می تواند طول رشته از 0 کاراکتر تا (تقریبا) 2 میلیارد کاراکتر باشد

رشته (رشته

طول ثابت)

طول مورد استفاده برای ذخیره متن. رشته ها (یکی حاوی از یک تا (تقریباً) 65400 بایت در هر کاراکتر)

16 بایت + 1 بایت / کاراکتر

نوع Variant می تواند هر نوع داده دیگری را ذخیره کند. محدوده داده های Variant به داده های ذخیره شده واقعی بستگی دارد. در مورد متن، محدوده مربوط به نوع رشته است. در مورد اعداد، محدوده مشابه با نوع Double است

برای دسترسی به هر شیء شناسایی شده توسط VBA استفاده می شود. آدرس یک شی را در حافظه ذخیره می کند

روی میز. 9 شما با نمایش داده ای به نام مواجه شده اید نماد نمایی(علمی نشانه گذاری) که برای نمایش در دستگاه های خارجی (مانیتور، چاپگر و ...) اعداد بسیار بزرگ و بسیار کم در قالب فشرده استفاده می شود. در نمادگذاری نمایی، مقادیر بدون صفرهای پیشرو یا انتهایی نوشته می‌شوند و تنها یک رقم در سمت چپ نقطه اعشار وجود دارد. عدد تا حدی در 10 ضرب می شود تا نشان دهد که اعشار در کجا واقع شده است.

VBA دارای شش نوع داده عددی مختلف است: بایت ها, عدد صحیح, طولانی, تنها, دو برابرو واحد پول. انواع داده های عددی بسته به نوع خاص، برای ذخیره (و دستکاری) اعداد در قالب های مختلف استفاده می شود.

به طور معمول یک برنامه VBA (مانند هر برنامه دیگری) با بررسی درست بودن شرایط مختلف، تصمیم می گیرد. برای ساده کردن شرایط آزمایش و اطمینان از ذخیره شدن نتایج چنین آزمایشی، VBA یک نوع داده Boolean ارائه می دهد. مقادیر بولی درست است، واقعیو نادرستتماس گرفت بولی(بولی) ارزش های. نام آنها با نام ریاضیدانی مرتبط است که سیستم منطق ریاضی را توسعه داده است. نوع داده بولین VBA نوع داده نیز نامیده می شود. بولی. نوع بولی VBA به دو بایت حافظه نیاز دارد و می تواند یکی از دو مقدار را داشته باشد: درست است، واقعییا نادرست. اگر نوع را نمایش می دهید بولیروی صفحه، VBA به طور خودکار آن را به رشته ای که هر کدام از این کلمه را در بر می گیرد، تبدیل می کند درست است، واقعی, یا نادرست. مقادیر بولی به عنوان به دست می آید

نتیجه عملیات مقایسه

VBA از نوع استفاده می کند تاریخبرای ذخیره تاریخ و زمان نیازی به نگرانی در مورد نحوه ذخیره داده های نوع VBA نیست. تاریخ, - شما به سادگی می توانید تاریخ ها را نمایش، ذخیره یا دستکاری کنید. VBA به طور خودکار تمام جزئیات تبدیل شماره سریال به سال، ماه، روز و زمان را مدیریت می کند. نوع VBA تاریخیک نوع است تاریخ های متوالی(سریال تاریخ). تاریخ های متوالی تاریخ را به عنوان تعداد روزهای از تاریخ شروع معین ذخیره می کنند. تاریخ پایه برای نوع VBA تاریخاست 30 دسامبر 1899. VBA از اعداد منفی برای نمایش تاریخ های قبل از 12/30/1899 و اعداد مثبت برای تاریخ های بعد از 12/30/1899 استفاده می کند. عدد 0 نشان دهنده تاریخ 12/30/1899 است. در این طرح، 1 ژانویه 1900 به صورت 2 نوشته می شود (1/1/1990 2 روز بعد از 12/30/1899 است)، اما -2 تاریخ 12/28/1899 (دو روز قبل از 12/30/1899) است. . برای تأیید این موضوع، یک روش ساده بنویسید.

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

برای این:

یک رویه بنویسید (فهرست 3):

فهرست کردن 3 روشتست تاریخ

1 آزمون تاریخ فرعی ()

2 Dim d As Date 3

در نتیجه این روش، تاریخ پایه روی صفحه نمایش داده می شود (شکل 15).

برنج. 15 در یک مقدار تاریخ متوالی، قسمت صحیح (اعداد سمت چپ نقطه اعشار) تعداد کل روزهای از تاریخ پایه است. تاریخ سریال VBA می تواند دارای ارقامی در سمت راست نقطه اعشار باشد. این اعداد زمان روز را به عنوان بخشی از روز تعیین می کنند. یک ساعت برابر با 1/24 روز است (تقریباً 0.0416. به همین ترتیب، یک دقیقه برابر با 1/1440 روز و یک ثانیه برابر با 1/86400 روز است. می توانید یک تاریخ را از تاریخ دیگر کم کنید، به تاریخ اضافه کنید، یا اعداد را کم کنید تا آن را تغییر دهید. تاریخ، VBA "می داند" که هدف از محاسبه بدست آوردن تفاوت در روز بین این دو تاریخ است. به طور مشابه، اگر شما نیاز به تعیین تاریخ دارید 60 روز پس از تاریخ معین، به سادگی 60 را به آن تاریخ اضافه کنید.

VBA چندین رویه داخلی دارد (توضیح داده شده در این قسمت) برای استخراج جداگانه سال، ماه، روز، ساعت، دقیقه و ثانیه از متغیر نوع تاریخ.

هر داده متنی ذخیره شده در یک برنامه VBA نامیده می شود خطوط(رشته های). رشته ها در VBA با استفاده از یک نوع داده ذخیره می شوند رشته. رشته ها به این دلیل نامگذاری می شوند که داده های متنی معمولاً به عنوان رشته هایی از کاراکترها در نظر گرفته می شوند. خط ممکن است حاوی کاراکترهای متنیاز هر نوع: حروف الفبا، اعداد، علائم نقطه گذاری یا نمادهای مختلف. دو دسته از رشته ها وجود دارد: رشته های با طول متغیر که اندازه آنها بزرگ یا کوچک می شود، و رشته های با طول ثابت که همیشه یک اندازه می مانند. تمام رشته ها در VBA رشته های با طول متغیر هستند، مگر اینکه رشته ای با طول ثابت را مشخص کنید. بیشتر داده های ورودی کاربر (در جعبه های محاوره ای، سلول های کاربرگ) داده های رشته ای است. همچنین، از آنجایی که شما فقط می توانید متن را روی صفحه نمایش دهید، همه انواع داده های دیگر باید قبل از نمایش آنها به داده های رشته ای تبدیل شوند. بسیاری از رویه های داخلی VBA (مانند msgbox) از داده های رشته ای در همه یا برخی از آرگومان های خود استفاده کنید.VBA چندین عملگر را برای آن ها فراهم می کند الحاق(به هم پیوستن) یعنی به هم پیوستن و مقایسه رشته ها. VBA همچنین دارای چندین روال داخلی برای کمک به استخراج زیر رشته ها از رشته های طولانی تر، یافتن کاراکترها یا کلمات در یک رشته، تغییر حروف در یک رشته و غیره است. این بخش عملگرهای رشته VBA و روش‌های دستکاری رشته‌های VBA را توضیح می‌دهد.

نوع داده گونهیک نوع داده خاص است که می تواند هر یک از انواع نشان داده شده در جدول را ذخیره کند. 9، به جز نوع هدف - شی. VBA از نوع استفاده می کند گونهبرای همه متغیرها، مگر اینکه نوع متغیر را به صراحت اعلام کنید، همانطور که بعدا در این بخش توضیح داده شد. داده ها را تایپ کنید گونهویژگی هایی از نوع خاصی را که در حال حاضر ذخیره می کنند، می گیرند. به عنوان مثال، اگر نوع داده گونهحاوی داده های رشته ای، گونهویژگی های نوع String را می گیرد. اگر نوع داده گونهحاوی اعداد، گونهویژگی های برخی از انواع عددی، معمولا − را به خود می گیرد دو برابر، اگرچه انواع گونههمچنین می تواند ویژگی های نوع داشته باشد عدد صحیح, طولانی, تنهایا واحد پول. هر چند انواع گونهراحت هستند و برخی از کارها را هنگام نوشتن رویه ها ذخیره می کنند، آنها به حافظه بیشتری نسبت به هر نوع داده دیگری نیاز دارند، به استثنای رشته های بزرگ. علاوه بر این، عملیات ریاضی و عملیات مقایسه بر روی داده ها از نوع گونهکندتر از عملیات مشابه روی داده های هر نوع دیگری هستند. به طور کلی، شما باید از استفاده از متغیرها اجتناب کنید گونه: اگر به متغیرهایی مانند گونه، ممکن است عادت به برنامه نویسی درهم و برهم داشته باشید و پیدا کردن و رفع اشکالات در برنامه های خود دشوار باشد.

متغیرها

متغیر(متغیرها) نامی است که برنامه نویس به منطقه می دهد

حافظه کامپیوتر برای ذخیره برخی از انواع داده ها استفاده می شود. متغیرهای VBA می توانند هر یک از انواع داده های فهرست شده در جدول 1 را ذخیره کنند. 9.

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

نام متغیرها نه "حساس به حروف بزرگ"(نه مورد- حساس) یعنی نوشتن نام متغیر با حروف بزرگ یا حروف بزرگمهم نیست

ساده ترین راه برای ایجاد یک متغیر استفاده از آن در دستور VBA است. VBA یک متغیر ایجاد می کند و برای اولین بار که متغیر در یک دستور ظاهر می شود، حافظه را برای مکان حافظه آن ذخیره می کند (معمولاً عبارتی که یک مقدار داده را در یک متغیر ذخیره می کند).

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

این عملگر مقدار عددی 25 را در محل حافظه مشخص شده توسط نام متغیر ذخیره می کند MyVar.

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

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

به این دلایل و دلایل دیگر، VBA این توانایی را به شما می دهد صریح(صریح) اعلام متغیرها.

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

کم نور نام1 [, نام2 ]

nameN هر شناسه متغیر معتبری است. همه متغیرهایی که با این فرم کلمه کلیدی ایجاد می کنید کم نور، متغیر هستند

نوع گونه.

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

وظیفه 2.رویه را اصلاح کنید سلام اکسل از قسمت قبل، با استفاده از یک تعریف متغیر صریح.

برای این:

رویه را تغییر دهید سلام اکسل (فهرست 4):

فهرست کردن 4 روشسلام اکسل

1 زیر HelloExcel()

2 متغیر Dim HelloMsg " برای MsgBox 3

اپراتور کم نور (در خط 2) از لیست 4 یک متغیر را اعلام می کند سلام Msg و یک ناحیه حافظه برای آن رزرو می کند (در این زیربرنامه سلام Msg یک متغیر نوع است گونه). خط 2 شامل یک نظر انتهایی است که هدف این متغیر را نشان می دهد. خط 4 یک انتساب به یک متغیر است سلام Msg خطوط "سلام،برتری داشتن!" . بعد (در خط 5) متغیر HelloMsg به عنوان یکی از آرگومان های رویه استفاده می شود MsgBox. تابع MsgBox همان جعبه پیام قبلی را نمایش می دهد. با اينكه MsgBox اکنون اولین آرگومان خود را از یک متغیر دریافت می کند، این متغیر حاوی همان اطلاعات رشته ای است که قبلاً (در لیست های قسمت قبلی) مستقیماً روی عبارت نوشته شده بود. MsgBox.

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

کم نور ورنامل [, varname2 ]

varnameN هر نام متغیر VBA معتبر را نشان می دهد، a نوع N - هر یک از نام های نوع داده VBA.

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

با یک اعلان ضمنی، می توانید نوع متغیر را با اضافه کردن نیز مشخص کنید

یک شخصیت خاص به نام نماد تعریف نوع(نوع- تعریف شخصیت) تا انتهای نام متغیر. روی میز. جدول 10 نمادهای تعریف نوع VBA و انواع آنها را فهرست می کند. جدول 10- نمادهای تعریف را تایپ کنید

تایپ کنید

نماد تعریف

تایپ کنید

سمبل تعاریف

عدد صحیحطولانی

واحد پولدو برابر

کاراکترهای تعریف نوع فقط می توانند در انتهای نام متغیر ظاهر شوند. اگرچه باید بدانید که نمادهای تعریف نوع چیست و چگونه استفاده می شوند، به ندرت نیاز به استفاده از آنها دارید - استفاده از عبارت Dim با کلمه کلیدی As بسیار ساده تر و واضح تر است. اکثر برنامه نویسان VBA از نمادهای تعریف نوع استفاده نمی کنند.

وظیفه 3.رویه را اصلاح کنید سلام اکسل از کار 3، با استفاده از تعریف یک متغیر تایپ شده.

برای این:

رویه را تغییر دهید سلام اکسل (فهرست 5):

فهرست کردن 5 روشسلام اکسل

1 زیر HelloExcel()

2 کم نور HelloMsg به عنوان رشته 3

    HelloMsg = "سلام اکسل!"

    عنوان$ = "اولین برنامه من"

    MsgBox HelloMsg، عنوان$

این نسخه از روش سلام اکسل تقریباً به همان روش قبلی کار می کند. خط 1 حاوی بیانیه رویه است. بیانیه خط 2 کم نور به صراحت یک متغیر را اعلام می کند سلام Msg. از آنجایی که اپراتور کم نور شامل کلمه کلیدی است مانند و نام را تایپ کنید رشته، متغیر سلام Msg نوع دارد رشته. خط 4 متن پیام را به یک متغیر رشته ای اختصاص می دهد سلام Msg. خط 5 به طور ضمنی یک متغیر را اعلام می کند عنوان$و همزمان متن عنوان کادر پیام را به متغیر اختصاص می دهد. زیرا نام متغیر عنوان$یک کاراکتر تعریف نوع برای رشته در انتها دارد، این متغیر نیز از نوع String است. در نهایت، خط 6 از دستور استفاده می کند MsgBox برای نمایش جعبه پیام؛ در این عبارت هم متن پیام و هم نوار عنوان پنجره متغیر هستند: سلام Msg و عنوان$، به ترتیب.

پس از افزودن یک کاراکتر تعریف نوع به یک متغیر، باید هر بار که از نام متغیر استفاده می‌کنید، کاراکتر تعریف نوع را وارد کنید.

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

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

کم نور نام متغیر به عنوان رشته * ن

نام متغیر هر نام متغیر معتبری است، a ن هر عددی از 1 تا 65400 کاراکتر است

محدوده: دسترسی متغیر

مدت، اصطلاح محدوده(محدوده) به محدوده یک رویه یا ماژول VBA اشاره دارد که در آن متغیر، رویه یا شناسه دیگر موجود است. این بخش دو سطح پایه دامنه را توصیف می کند: رویه ای و مدولار. متغیرها، رویه‌ها و شناسه‌هایی که فقط در یک رویه در دسترس هستند، دامنه سطح رویه‌ای دارند، در حالی که آنهایی که برای همه رویه‌های یک ماژول در دسترس هستند، دامنه سطح ماژول دارند.

یک متغیر اعلام شده در یک رویه فقط برای آن رویه قابل دسترسی است. به عنوان مثال، یک متغیر سلام Msg از خط 2 فهرست 5 فقط در یک رویه موجود است سلام اکسل; هیچ روش دیگری به این متغیر دسترسی ندارد.

بنابراین می گوییم که متغیر سلام Msg این دارد محدوده رویه ای(روش- مرحله محدوده). در واقع متغیر سلام Msg فقط در زمانی وجود دارد که VBA واقعاً این رویه را اجرا می کند سلام اکسل.

وظیفه 4.دو رویه ایجاد کنید که دامنه آنها متغیرهای سطح رویه است.

برای این:

دو رویه کامل را وارد کنید (فهرست 6):

فهرست کردن 6 روشسلام اکسل

1 زیر HelloExcel()

2 کم نور HelloMsg به عنوان رشته 3

    HelloMsg = "سلام اکسل!"

    MsgBox HelloMsg، "اولین برنامه من"

8 زیر HelloDave()

9 کم نور HelloMsg به عنوان رشته 10

    HelloMsg = "سلام اکسل!"

    MsgBox HelloMsg، "یک جعبه پیام دیگر"

خطوط 1-6 شامل همین رویه است سلام اکسل از لیست 4 که دقیقاً به همین صورت عمل می کند. رویه ای به ماژول اضافه شده است سلام دیو، که در خط 8 از لیست 6 شروع می شود. رویه سلام دیو مانند رویه کار می کند سلام اکسل، فقط یک پیام متنی و عنوان متفاوت را در کادر محاوره ای خود نمایش می دهد. در خطوط 2 و 9، هر دو رویه از دستور استفاده می کنند کم نور برای اعلان متغیرهای با نام محلی سلام Msg.

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

VBA به شما اجازه می دهد تا متغیرهایی را که برای چندین رویه در دسترس هستند را اعلام کنید. هنگامی که یک متغیر برای همه رویه‌های یک ماژول در دسترس است، می‌گویند که متغیر دارای محدوده است. سطح مدولار(مدول مرحله). VBA دامنه یک متغیر سطح ماژول را به ماژولی که متغیر در آن اعلان شده است محدود می کند (VBA راه هایی را برای گسترش دامنه یک متغیر حتی بیشتر ارائه می دهد؛ این روش ها بعدا توضیح داده می شوند).

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

تمرین 1

دو رویه و یک اعلان متغیر در سطح ماژول ایجاد کنید (در خط 1 عبارت را حرکت دهید کم نور با متغیر سلام Msg حذف خطوط 2 و 9 از فهرست 6).

نام متغیر باید در محدوده خود منحصر به فرد باشد. با این حال، این امکان وجود دارد که متغیرهایی با نام یکسان داشته باشند ناهمسانسطوح دامنه زمانی که متغیرها نام یکسانی دارند اما دامنه های متفاوتی دارند، VBA از متغیری که بیشترین مقدار را دارد استفاده می کند محلی(محلی) محدوده.

نیاز به اعلام متغیر صریح

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

برای سهولت در تشخیص خطاهای مربوط به اعلان ضمنی متغیرها در هر زمان، VBA این دستور را ارائه می کند. گزینهصریح. استفاده كردن گزینهصریح VBA نیاز دارد که همه متغیرها اعلام شوند (با استفاده از کم نور) قبل از استفاده از آنها در یک ماژول.

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

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

چون شمول گزینهصریحبرای همه ماژول ها بسیار مفید است، ویرایشگر VB راهی را ارائه می دهد که به طور خودکار این دستور را در هر ماژول جدیدی که ایجاد می شود شامل شود. برای اینکه ویرایشگر VB دستوری را اضافه کند گزینهصریحدر هر ماژول جدید، این مراحل را دنبال کنید:

y یک دستور را انتخاب کنید ابزار/ گزینه ها (خدمات/پارامترها) ویرایشگر VB یک کادر محاوره ای را نمایش می دهد گزینه ها;

و روی تب کلیک کنید ویرایشگر (ویرایشگر) برای نمایش گزینه های ویرایش، در صورت نیاز؛

y کادر را انتخاب کنید نیاز متغیر اعلام (اعلان صریح متغیرها);

شما انتخاب کنید خوب. ویرایشگر VB کادر محاوره ای را می بندد گزینه ها.

تمرین 2

دستور را روی auto-enable قرار دهید گزینه صریح به هر ماژول جدید هنگام ایجاد.

ثابت ها

ثابت(ثابت) یک مقدار در یک برنامه VBA است که تغییر نمی کند. رویه‌های مثالی که قبلاً در بالا ارائه شده‌اند از ثابت‌های رشته‌ای از نوع استفاده می‌کنند "سلام،برتری داشتن!" و "اولین برنامه من". ثابت هایی از این دست نامیده می شوند ثابت های تحت اللفظی(تحت اللفظی ثابت ها) زیرا مقدار تحت اللفظی مستقیماً روی کد نوشته می شود.

شما همچنین می توانید ثابت های عددی و تاریخ تحت اللفظی را در کد VBA بنویسید. مثال هایی از ثابت های لفظی عددی شامل اعداد است 25 , 3.14 . نمونه هایی از ثابت های تاریخ تحت اللفظی عبارتند از تاریخ #12/31/96# یا #28 اکتبر 1997#(در ادامه این قسمت درباره نوشتن ثابت تاریخ بیشتر خواهید آموخت).

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

Const نام = ارزش [اپراتور نام2… ] _

[, پاتز =ارزش3 [اپراتور نام4 ] … ]

nameN هر شناسه معتبری را نشان می دهد، ارزشN – هر مقدار داده: عددی، رشته ای یا تاریخ، الف اپراتور یک عملیات محاسباتی یا مقایسه بین دو نام ثابت قبلی است. خطوط بعدیچندین اعلان ثابت نامگذاری شده را نشان دهید: Const Pi = 3.14، متن = "سلام اکسل!"

Const Pi2 = 2*Pi

محدوده ثابت ها

همانند متغیرها، می‌توانید ثابت‌های نام‌گذاری شده را در رویه‌ها یا در ناحیه اعلان در ابتدای یک ماژول اعلام کنید. یک ثابت اعلام شده در یک رویه دارای دامنه در سطح رویه ای است، در حالی که یک ثابت اعلام شده در یک محدوده اعلامی ماژول دارای محدوده سطح ماژول است. ثابت‌های نام‌گذاری‌شده از قوانین محدوده مشابه متغیرها پیروی می‌کنند.

نوشتن ثابت های تحت اللفظی

هنگام نوشتن ثابت های رشته تحت اللفظی در کد VBA، قوانین زیر را دنبال کنید:

ь ثابت های رشته باید در دو گیومه (") محصور شوند.

b یک ثابت رشته خالی است (نامیده می شود رشته پوچخالی رشته یا خالی رشته) با دو گیومه دو نشان داده می شود که بین آنها چیزی وجود ندارد ("").

ثابت رشته b همه باید در یک خط باشند.

هنگام نوشتن ثابت های عددی تحت اللفظی در کد VBA، این قوانین را دنبال کنید:

ь ثابت های عددی باید فقط از کاراکترهای عددی از 0 تا 9 تشکیل شوند.

ь یک ثابت عددی ممکن است با علامت (-) شروع شود و ممکن است دارای یک نقطه اعشار باشد.

b می توانید از نماد نمایی برای ثابت های عددی استفاده کنید.

VBA ثابت های تاریخ را در هر یک از چندین فرمت مختلف تشخیص می دهد. شما باید تمام ثابت های تاریخ را بین علائم پوند (#) قرار دهید. خطوط زیر برخی از قالب‌های ثابت تاریخ را نشان می‌دهد که VBA آنها را تشخیص می‌دهد: #2-5-97 21:17:34# #5 فوریه 1997 9:17:34 بعد از ظهر# #Mag-31-97# #15 آوریل 1997#

صرف نظر از اینکه یک ثابت تاریخ تحت اللفظی در کدام قالب نوشته شده است، VBA آن ثابت را مجدداً فرمت می کند (زمانی که نقطه درج پس از نوشتن ثابت از خط حذف شود) تا با یکی از دو قالب زیر مطابقت داشته باشد، بسته به اینکه ثابت تاریخ حاوی اطلاعات باشد یا خیر. about time: #2/5/1997 9:17:34 PM# #2/5/1997# فقط دو ثابت بولی معتبر وجود دارد: True و False.

تنظیم نوع ثابت

وقتی یک ثابت نامگذاری شده را اعلام می کنید یا از یک ثابت تحت اللفظی استفاده می کنید، VBA "فکر می کند" که مقدار نشان داده شده توسط آن ثابت دارای

نوع داده ای که بیشترین مطابقت را با عبارت اختصاص داده شده به ثابت دارد.

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

Const ناممانند نوع = ارزش[, ناممانند نوع = ارزش]

نام هر نام ثابت معتبری است، نوع نام هر یک از انواع داده های VBA است و ارزش مقداری است که به ثابت نسبت می دهید.

خط زیر اعلان صحیح یک ثابت با یک نوع خاص را نشان می دهد:

Const Pi As Double = 3.14

درونی؛ داخلیثابت ها

VBA چندین ارائه می دهد ثابت های داخلی(ذاتی ثابت ها)، همچنین به نام ثابت های از پیش تعریف شده(از پیش تعیین شده ثابت ها). یک ثابت داخلی ثابت نامگذاری شده است که توسط توسعه دهندگان VBA تعریف شده است. ثابت های داخلی تعریف شده توسط VBA همه با حروف شروع می شوند vbبرای نشان دادن اینکه آنها توسط زبان Visual Basic for Applications (یا Visual Basic) تعریف شده اند. به عنوان مثال، ثابت ها vbOKOnly, vbOK لغوتوسط VBA تعریف شده است. ثابت های داخلی اکسل 2002 با حروف شروع می شوند xlتا مشخص شود که آنها توسط اکسل تعریف شده اند. به لطف ثابت های داخلی، استفاده از برخی از رویه های داخلی VBA، مانند عبارت، آسان تر است MsgBox، که قبلاً در مورد آن می دانید و اپراتور InputBox, که بعداً در این بخش مورد بحث قرار خواهند گرفت.

نمایش جعبه های پیام دریافت داده از کاربر

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

تابع MsgBoxنمایش جعبه پیام دارای نحو زیر است:

MsgBox(سریع [, دکمه ها ] [, عنوان ] [, HelpFile , متن نوشته ])

بحث و جدل سریع MsgBoxاین رشته را در یک کادر محاوره ای نمایش می دهد. همیشه باید استدلال ارائه کند سریع، از آنجایی که این است استدلال مورد نیاز(ضروری بحث و جدل). بحث و جدل دکمه ها (آگومان اختیاری)، یک عبارت عددی است که دکمه ها و پیام هایی را برای نمایش در کادر محاوره ای مشخص می کند. بحث و جدل عنوان هر مقدار رشته (حرفی، ثابت یا متغیر) را نشان می دهد. MsgBoxعنوان, VBA در نوار عنوان کادر محاوره ای نمایش داده می شود MsgBoxکلمه " مایکروسافتبرتری داشتن" . بحث و جدل HelpFile - فایل راهنما متن نوشته - بخش در فایل راهنما متن پیام را می توان در پرانتز قرار داد، اما پرانتزها در صورت عملکرد اختیاری هستند MsgBox

به عنوان اپراتور استفاده می شود.

ورودی کاربر فراخوانی می شود داده های ورودی(ورودی). برای دریافت ورودی از کاربر رویه، از تابع استفاده کنید InputBox. تابع(تابع) نوع خاصی از رویه VBA است که مقداری را برمی گرداند. تابع InputBoxیک کادر محاوره ای حاوی متنی را نشان می دهد که از کاربر می خواهد مقداری را وارد کند و یک کادر متنی برای وارد کردن آن مقدار. کادر گفتگو نمایش داده شد InputBox, شامل دکمه های فرمان نیز می باشد خوبو لغو کنید.

تابع InputBoxدارای نحو زیر است:

stringvar=InputBox( سریع[, عنوان] [, پیش فرض] [, XPos] [, YPos] _

[, HelpFile, متن نوشته])

اینجا stringvar هر متغیری را نشان می دهد که می تواند یک رشته (یا یک متغیر از نوع) را ذخیره کند رشته، یا - گونه). بحث و جدل سریع هر مقدار رشته (حرفی، ثابت یا متغیر) را نشان می دهد. InputBoxاین رشته را به عنوان یک اعلان در یک کادر محاوره ای نمایش می دهد. همیشه باید استدلال ارائه کند سریع، از آنجایی که این است استدلال مورد نیاز; بقیه اختیاری هستند بحث و جدل عنوان دومین استدلال برای InputBox. عنوان هر مقدار رشته (حرفی، ثابت یا متغیر) را نشان می دهد. InputBoxمتن این خط را در نوار عنوان کادر محاوره ای نمایش می دهد. اگر استدلال را حذف کنید عنوان، VBA در نوار عنوان کادر محاوره ای نمایش داده می شود InputBoxکلمه " مایکروسافتبرتری داشتن" . بحث و جدل پیش فرض - اگر کاربر رشته دیگری را وارد نکند، عبارت رشته در قسمت ورودی به عنوان پیش فرض نمایش داده می شود. اگر این آرگومان حذف شود، فیلد ورودی خالی نمایش داده می شود. استدلال ها XPos و YPos می تواند هر عبارت عددی باشد. این آرگومان‌ها به شما امکان می‌دهند مشخص کنید که در پنجره فعال کادر ورودی در کجا ظاهر می‌شود و مختصات گوشه سمت چپ بالای کادر محاوره‌ای باشد: XPos - فاصله افقی از لبه سمت چپ پنجره؛ YPos فاصله عمودی از لبه بالایی پنجره است. هر دو فواصل در دو نوبت اندازه گیری می شوند ( تیغه ها) یک ضربه برابر با 1/20 نقطه است (نقطه اندازه گیری فونت چاپ است). از آنجایی که یک نقطه 1/72 اینچ است، یک ضربه تقریباً 0.0007 اینچ است. دو آرگومان اختیاری آخر برای تابع InputBox- این HelpFile و متن نوشته. آنها هدفی مشابه با آرگومان های تابع مشابه دارند. MsgBox.

استفاده از آرگومان های تابع نامگذاری شده

همانطور که متوجه شده اید، به راحتی می توان کاماهای انتهایی را حذف کرد یا مقادیر آرگومان را در توابعی که دارای آرگومان های اختیاری یا چندین آرگومان هستند، علی رغم کمک ویژگی، تنظیم مجدد کرد. خودکار سریع (اطلاعات مختصر) ویرایشگر VB. حذف یا تنظیم مجدد آرگومان ها در لیست آرگومان یک تابع می تواند منجر به خطاهای عدم تطابق نوع شود. ممکن است خطا (حتی بدتر) شناسایی نشود. برای جلوگیری از خطاهای برنامه نویسی و سهولت استفاده از توابعی که دارای آرگومان های اختیاری هستند، VBA جایگزینی برای فهرست کردن مقادیر در لیست آرگومان ها به ترتیب خاص ارائه می دهد. شما همچنین می توانید انتقال دهید

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

MsgBox AnyMsg، AnyTitle

پیام MsgBox:=AnyMsg، عنوان:=AnyTitle

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

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

وظیفه 5.رویه ای بنویسید که مساحت یک دایره را محاسبه کند، اما شعاع دایره را از کاربر رویه دریافت کند.

برای این:

رویه را وارد کنید (فهرست 7):

لیست 7 – دریافت داده های ورودی با استفاده از اپراتورInputBox

    Const Pi As Single = 3.14 اینچ تقریب مقدار pi

    Dim CircleArea As Single " ناحیه محاسبه شده دایره 3 را ذخیره می کند

4 فهرست فرعی3_07()

    Const BoxTitle = " ناحیه دایره"!}

    شعاع کم نور به عنوان تک، دما به عنوان رشته 7

    Temp = InputBox ("Enter Radius" & Chr(13) & "circle", BoxTitle)

    شعاع = CSng (دمای)

    Circle Area = Pi * Radius * Radius

    MsgBox CircleArea، vbInformation + vbOKCancel، BoxTitle

خطوط 1 و 2 لیست 7 یک ثابت را اعلام می کنند پی و متغیر ناحیه دایره سطح مدولار خط 4 حاوی بیانیه رویه واقعی است. خط 5 یک سطح رویه ای را ثابت اعلام می کند جعبه عنوان; این ثابت فقط دسترسی محلی در رویه دارد List3_07. در خط 8، عبارت تابع را فراخوانی می کند InputBox. اولین آرگومان خود را به صورت متن در یک کادر محاوره ای نمایش می دهد و از کاربر می خواهد مقادیری از نوع را وارد کند. در این اپراتور InputBox متن "شعاع دایره را وارد کنید" را نمایش می دهد (تابع Chr(13) نماد انتقال به خط جدید) به کاربران روال بگوید که چه مقداری را باید وارد کنند. InputBox از آرگومان دوم استفاده می کند،

12 پایان فرعی

با یک ثابت نشان داده می شود جعبه عنوان، به عنوان عنوان کادر محاوره ای. هنگام اجرای بیانیه InputBox یک کادر محاوره ای نمایش داده می شود (شکل 16)

مساحت یک دایره

شعاع دایره را وارد کنید

برنج. 16 کاربر یک عدد را در کادر متن وارد می کند و یک دکمه فرمان را انتخاب می کند خوبیا لغو کنیدبرای بستن دیالوگ مانند هر پنجره دیگر ویندوز. هر زمان که هر تابعی را فراخوانی می کنید، باید به نحوی از مقدار بازگردانده شده توسط تابع استفاده کنید. مقدار برگردانده شده توسط یک تابع فراخوانی می شود نتیجه عملکرد(تابع نتیجه). همانطور که در خط 8 در مورد تابع نشان داده شده است InputBox، که نتیجه آن به یک متغیر اختصاص داده می شود دما. نتیجه عملکرد InputBox همیشه یک رشته است (به همین دلیل متغیر دما به عنوان اعلام شد رشته). از آنجایی که متغیر دما به صراحت اعلام شد رشته، مقدار رشته باید قبل از استفاده در محاسبات ریاضی به یک مقدار عددی تبدیل شود. خط 9 لیست 7 دقیقاً این کار را با استفاده از تابع VBA داخلی انجام می دهد csng برای تبدیل ورودی کاربر به تعدادی از نوع Single.

عبارات دردیداریپایه ای

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

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

سازگاری نوع داده تبدیل خودکار داده ها

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

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

ترکیب انواع داده های عددی مختلف در یک عبارت. VBA به طور خودکار تبدیل های لازم را در انواع مختلف عددی انجام می دهد. VBA همچنین گاهی اوقات می تواند به طور خودکار انواع داده های دیگر را تبدیل کند تا همه انواع یک عبارت سازگار باشند، اگرچه این همیشه امکان پذیر نیست. کنترل و دانستن نوع یک عبارت بسیار مهم است، زیرا اگر عبارات حاوی انواع ناسازگار باشند، VBA یک خطای زمان اجرا پرتاب می کند - یک خطا. عدم تطابق نوع(نوع- عدم تطابق). هنگام پردازش یک عبارت حاوی انواع داده های مختلف، VBA ابتدا "تلاش" می کند تا هر گونه تفاوت نوع را با تبدیل مقادیر موجود در عبارت به انواع داده های سازگار حل کند. اگر تبدیل نوع نتواند اختلافات را حل کند، یک خطای زمان اجرا نمایش داده می شود و اجرای رویه متوقف می شود. به عنوان مثال، در عبارت 25 & "Computer Science"، VBA همیشه بدون توجه به انواع متغیر، الحاق رشته ها را انجام می دهد (دو رشته را به هم می پیوندد). نتیجه نوع است رشته; این عبارت هرگز خطای عدم تطابق نوع ایجاد نمی کند.

VBA معمولاً تمام انواع داده های عددی در یک عبارت را به بالاترین نوع دقیق تبدیل می کند و سپس آن نوع را به نتیجه عبارت می دهد. به عنوان مثال، اگر عبارت حاوی مقادیر عددی با انواع باشد عدد صحیحو تنها, نتیجه عبارت یک نوع است تنها– نوع بالاترین دقت در این عبارت. اگر نتیجه یک عبارت عددی را به یک متغیر با دقت کمتری نسبت به نوع واقعی نتیجه عبارت اختصاص دهید، VBA نتیجه عبارت را تا زمانی که دقت آن با نوع مورد انتظار مطابقت داشته باشد گرد می کند. به عنوان مثال، اگر یک عبارت عددی را اختصاص دهید که منجر به عددی مانند می شود دو برابر, متغیر نوع عدد صحیح, VBA دور شماره دقت دو برابر برای تایپ عدد صحیح.

هنگام تبدیل یک عدد به رشته، VBA رشته ای ایجاد می کند که شامل تمام ارقام آن عدد به اضافه یک نقطه اعشار (اگر عدد دارای یک باشد) است. به عنوان مثال، عدد 3413.72 (از نقطه برای نوشتن یک عدد در کد استفاده می شود)، به رشته "3413.72" تبدیل می شود. اگر عدد بسیار بزرگ یا بسیار کوچک باشد، VBA می‌تواند یک نمایش رشته‌ای از عدد در نماد علمی ایجاد کند. به عنوان مثال، عدد 0.0000000004927 به رشته "4.927E-11" تبدیل می شود.

VBA فقط می تواند رشته ای را به عدد تبدیل کند تا زمانی که رشته دارای نمایش کاراکتر عدد در قالب اعشاری یا نمایی باشد. رشته های "988.6"، "812"، "-186.7"، "1,3E10" نشان دهنده اعداد هستند و VBA می تواند آنها را به عدد تبدیل کند. رشته‌های «1.045»، «74.550 دلار» و «صبح بخیر!» نمی توان به عدد تبدیل کرد

وقتی VBA مقادیر نوع را تبدیل می کند بولیبه اعداد، معنی درست است، واقعیبه 1 تبدیل می شود و مقدار نادرست– به 0. هنگامی که VBA یک عدد را به یک نوع تبدیل می کند بولی، صفر تبدیل می شود نادرستو هر مقدار دیگری به آن تبدیل می شود درست است، واقعی. وقتی VBA مقادیر نوع را تبدیل می کند بولیبرای رشته ها، VBA از رشته "True" استفاده می کند درست است، واقعیو "نادرست" برای نادرست.

چه زمانی VBA یک نوع داده را تبدیل می کند تاریخبه یک عدد، نتیجه یک مقدار عددی است - تعدادی از نوع دو برابر، که حاوی تعداد روزهای از 30 دسامبر 1899 است (عدد منفی نشان دهنده تاریخی زودتر از 12/30/1899 است). قسمت اعشاری عدد (در صورت وجود) زمان روز را به عنوان بخشی از بیان می کند

روز؛ 0 نیمه شب و 0.5 ظهر است. در VBA، تبدیل انواع داده های عددی به انواع تاریخفقط معکوس تبدیل نوع است تاریخبه تعداد

اپراتور تخصیص (=)

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

نام متغیر = اصطلاح

متغیر نام متغیر - هر متغیر، a اصطلاح - هر بیانی

هنگام اجرای دستور انتساب، VBA ابتدا عبارت سمت راست دستور انتساب (=) را ارزیابی می کند و سپس نتیجه عبارت را در متغیری که نام آن در سمت چپ دستور انتساب است ذخیره می کند.

تصویر عملگر تخصیص در فلوچارت:

varname = بیان

هنگامی که نتیجه یک عبارت را به یک متغیر با یک نوع داده خاص اختصاص می دهید، آن نتیجه می تواند از نوع داده ای سازگار با نوع متغیری باشد که مقدار جدید را دریافت می کند. در بسیاری از موارد، VBA می تواند نوع داده نتیجه یک عبارت را به نوعی تبدیل کند که با نوع متغیری که مقدار جدید را می گیرد، سازگار باشد، اگر نتیجه عبارت و متغیر قبلاً دارای انواع سازگار نباشند. نوع متغیر گونههر نوع داده ای را می توان اختصاص داد.

عملیات حسابی

VBA می تواند تمام عملیات حسابی معمولی (اجرا شده از طریق عبارات حسابی) را انجام دهد: جمع، تفریق، ضرب، و تقسیم، و همچنین افزایش اعداد به توان مشخص، و عملیات ریاضی ویژه اضافی برای تقسیم اعداد صحیح و تقسیم مدول (جدول 11) .

جدول 11- علائم عملگر (نشان‌گذاری) مورد استفاده در عبارات حسابی VBA (Ni هر عبارت عددی معتبر VBA است)

امضا کردن

نحو

نام/توضیحات

اضافه. N1 را به N2 اضافه می کند

منها کردن. N2 را از N1 کم می کند

ضرب. N1 را در N2 ضرب می کند

بخش. N1 را بر N2 تقسیم می کند.

تقسیم عدد صحیح N1 را بر N2 تقسیم می کند، هر قسمت کسری را دور می اندازد تا نتیجه یک عدد صحیح باشد.

بخش مدولو. N1 را بر N2 تقسیم می کند و فقط باقی مانده عملیات تقسیم را برمی گرداند.

توانمندی. N1 را به توان N2 می رساند.

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

عملیات مقایسه

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

نتیجه هر عملیات مقایسه مقداری از نوع است بولی: درست است، واقعییا نادرست. عملگرهای مقایسه برای مقایسه مقادیر تحت اللفظی، ثابت یا متغیر از هر نوع مشابه استفاده می شوند (جدول 12).

نام/توضیحات

برابری. درست است، واقعی ، اگرالبرابر با E2، در غیر این صورت -نادرست

کمتر از. درست است، واقعی ، اگرالکمتر از E2، در غیر این صورت -نادرست

کمتر یا مساوی.درست است، واقعیاگر E1 کمتر یا مساوی باشد

E2، در غیر این صورت -نادرست

بیشتر از. درست است، واقعی ، اگر E1 بزرگتر از E2 باشد، در غیر این صورت -نادرست

بزرگتر یا مساوی.درست است، واقعیاگر E1 بزرگتر یا مساوی باشد

E2، در غیر این صورت -نادرست

نا برابر.درست است، واقعی، اگر E1 برابر با E2 نباشد، در غیر این صورت - نادرست

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

جدول 12- علائم (نماد) عملیات مقایسه (E در این جدول نشان دهنده هر عبارت معتبر VBA است)

عمل/اپراتور

نحو

f

نمونه،

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

مقایسه رشته های باینری و متنی

VBA دو راه مختلف برای مقایسه کاراکترهای مختلف ارائه می دهد. اولین روشی که VBA برای مقایسه رشته ها استفاده می کند نامیده می شود دودویی (دودویی) یا مقایسه باینری و روش مقایسه پیش فرض است. برای انتخاب روش مقایسه رشته های موجود در VBA (باینری یا متنی)، از دستورالعمل استفاده کنید گزینهمقایسه کنید:

گزینه مقایسه [ دودویی | متن]

در مقایسه متنی، VBA حروف بزرگ را معادل حروف کوچک می داند.

الحاق رشته

VBA به شما این امکان را می دهد که رشته ها را به هم بچسبانید تا رشته های بلندتری را تشکیل دهید. اتصال یک رشته به رشته دیگر نامیده می شود الحاق(الحاق) خطوط. علامت & فقط برای الحاق رشته ها قابل استفاده است. نحو کلی علامت & این است:

عملوند1 & عملوند2 [& عملوند3… ]

عملوند1 و عملوند2 - هر رشته یا عبارت عددی معتبر. اگر یک یا هر دو عملوند عبارات عددی باشند، VBA اعداد را قبل از انجام عملیات الحاق به رشته تبدیل می کند. نوع داده حاصل از الحاق رشته ها همیشه نوع است رشته.

عملگرهای منطقی

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

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

نام/شرح نحو اپراتور

و El And E2 پیوستگی. درست است، واقعیاگر هر دو E1 و E2 دارای یک مقدار باشند

درست است، واقعی ، در غیر این صورت -نادرست یا El Or E2 تفکیک. درست است، واقعیاگر یک عبارت یا هر دو (E1 و

E2) برابر هستنددرست است، واقعی ; در غیر این صورت -نادرست نه ال نفی. درست است، واقعیاگر E1 مهم است نادرست; نادرست,

اگرالبرابر استدرست است، واقعی

استثنا. درست است، واقعیاگر E1 و E2 متفاوت باشند

ارزش های؛ در غیر این صورت -نادرست

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

مقدار E2؛ در غیر این صورت -نادرست

پیامد. نادرستوقتی E1 برابر است درست است، واقعیو

E2 استنادرست ; در غیر این صورت -درست است، واقعی .

اولویت های عملیات هنگام ارزیابی عبارات پیچیده

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

جدول 14- سلسله مراتب اپراتورها/عملیات از بالاترین اولویت به پایین ترین

نظرات اپراتور/علامت

توانمندی، بالاترین اولویت

منهای یکنواخت

ضرب و تقسیم دارای تقدم مساوی هستند; آنها همانطور که در عبارت از چپ به راست ظاهر می شوند ارزیابی می شوند

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

هر گونه الحاق رشته بعد از هر عملیات حسابی در عبارت و قبل از هر عملیات مقایسه یا مقایسه انجام می شود. عملیات منطقی

<, <=, >, >=,

مانند، =،<>، است

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

با استفاده از توابعویژوال بیسیک

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

توابع داخلی VBA بر اساس هدف کلی توابع (ریاضی، تبدیل داده ها، تاریخ و زمان، رشته و دستکاری دیسک) به چندین دسته تقسیم می شوند.

توابع ریاضی

VBA مجموعه استانداردی از توابع ریاضی را ارائه می دهد (جدول 15). جدول 15- توابع ریاضی VBA (N به معنای هر عبارت عددی است)

برمی‌گرداند/عمل

توابع(ar-

آدامس)

مقدار مطلق را برمی گرداندن

عضلات شکم(ن)

کسینوس یک زاویهن، جایی کهن

Cos(ن)

سینوس یک زاویه را برمی‌گرداند.نزاویه ای است که بر حسب رادیان اندازه گیری می شود

گناه(ن)

قهوهای مایل به زرد(ن)

مماس یک زاویه را برمی‌گرداند.ن- زاویه بر حسب رادیان

Atn(ن)

مماس قوس را برمی‌گرداندنبه صورت زاویه بر حسب رادیان

ثابت را برمی گرداند ه، به توان N ( هپایه لگاریتم های طبیعی است و (تقریبا) برابر با 2.718282)

قسمت صحیح N را برمی‌گرداند. Fix عدد را گرد نمی‌کند، اما هر قسمت کسری را کنار می‌گذارد. اگر N منفی باشد، Fix نزدیکترین عدد صحیح منفی را برمی گرداند بزرگتر یا مساوین

ورود به سیستم(ن)

قسمت صحیح N را برمی گرداند. Int عدد را گرد نمی کند، اما هر قسمت کسری را کنار می گذارد. اگر N منفی باشد، Int نزدیکترین عدد صحیح منفی را برمی گرداند کمتر یا مساوینلگاریتم طبیعی را برمی گرداندن

تصادفی

بحث و جدل

است

برمی گرداند

اختیاری. از تابع Rnd فقط بعد از آن استفاده کنید

مقداردهی اولیه مولد اعداد تصادفی VBA توسط اپراتور

تصادفی کردن

علامت یک عدد را برمی‌گرداند: -1 اگر N منفی باشد. 1 اگر N باشد

مثبت؛ 0 اگرن0 است

جذر N را برمی گرداند. VBA یک خطا را نمایش می دهد

زمان اجرا، اگرن- منفی

توابع تبدیل داده ها

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

جدول 16- توابع تبدیل داده (N هر عددی است، S هر رشته ای است و E هر نوع عبارتی است)

تابع (ar- Returns/Actionآدامس)

شماره کد کاراکتر مربوط به حرف اول را برمی گرداند خطوطاس. به عنوان مثال، حرف "A" دارای کد کاراکتر 65 است

تابع (استدلال)

برمی‌گرداند/عمل

یک رشته کاراکتری منفرد مربوط به کد کاراکتر N را برمی‌گرداند که باید عددی بین ۰ تا ۲۵۵ باشد. به عنوان مثال، کد کاراکتر 65، حرف "A" را برمی گرداند (Chr(13) یک کاراکتر بازگشتی کالسکه است، Chr(10) یک کاراکتر تغییر خط است)

رشته ای حاوی مقدار نشان داده شده با عبارت E را در قالب مطابق دستورالعمل های موجود در S برمی گرداند.

رشته ای حاوی نمایش هگزادسیمال N را برمی گرداند

Oct(N) رشته ای حاوی نمایش هشتگانه N را برمی گرداند

یک عدد صحیح از نوع را برمی گرداند طولانی A که نشان دهنده ارزش رنگ های اصلی تصویر است. N در هر آرگومان باید یک عدد صحیح در محدوده 0 - 255 باشد. آرگومان ها (از چپ به راست) مقادیر قرمز، سبز و آبی هستند.

Str(N) رشته ای معادل عبارت عددی N را برمی گرداند

مقدار عددی متناظر با عدد نشان داده شده توسط رشته S را برمی‌گرداند، که فقط باید دارای اعداد و یک نقطه اعشار باشد، در غیر این صورت VBA نمی‌تواند آن را به عدد تبدیل کند. اگر VBA نتواند رشته را به S تبدیل کند، تابع Val 0 را برمی گرداند

CBool(N) معادل بولی عبارت عددی N را برمی‌گرداند

بایت ها(از 0 تا 255)؛ E هر عبارت عددی یا رشته ای معتبری است که می تواند به عدد تبدیل شود

مقدار عددی نوع را برمی‌گرداند واحد پول

مقداری از نوع را برمی‌گرداند تاریخ. E می تواند هر عبارت معتبر (رشته یا عدد) باشد که تاریخ را در محدوده نشان می دهد 1/1/100 12/31/9999 ، شامل

مقدار عددی نوع را برمی‌گرداند دو برابر، که می تواند به عدد تبدیل شود

مقدار عددی نوع را برمی‌گرداند عدد صحیح; E هر عبارت عددی یا رشته ای معتبری است که می تواند به عدد تبدیل شود

مقدار عددی نوع را برمی‌گرداند طولانی; E هر عبارت عددی یا رشته ای معتبری است که می تواند به عدد تبدیل شود

تابع (استدلال)

برمی‌گرداند/عمل

مقدار عددی نوع را برمی‌گرداند تنها; E هر عبارت عددی یا رشته ای معتبری است که می تواند به عدد تبدیل شود

مقداری از نوع را برمی‌گرداند رشته; E - هر عبارت عددی یا رشته ای معتبر

مقداری از نوع را برمی‌گرداند گونه; E - هر عبارت عددی یا رشته ای معتبر

توابع تاریخ و زمان

توابع تاریخ و زمان VBA معمولاً برای دریافت تاریخ و زمان فعلی، شکستن مقدار تاریخ به اجزای سازنده آن یا تبدیل رشته ها و اعداد به مقادیر از نوع استفاده می شوند. تاریخ(جدول 17).

جدول 17- توابع تاریخ و زمان (N هر عبارت عددی معتبری است، و D هر عبارت معتبری است مانند تاریخ(شامل مقادیری مانند تاریخ، اعداد یا رشته هایی که VBA می تواند به تاریخ تبدیل کند). همه آرگومان های تابع مورد نیاز هستند، مگر اینکه به طور دیگری ذکر شده باشد)

برمی‌گرداند/عمل

توابع(ar-

آدامس)

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

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

تاریخو

یک عدد صحیح که بخشی از یک عبارت از نوع است را برمی‌گرداند تاریخ,

شامل

یک عدد صحیح که بخشی از یک عبارت از نوع است را برمی‌گرداند تاریخو

روز هفته (D) ساعت (D)

شامل

یک عدد صحیح حاوی روز هفته را برای عبارتی از نوع برمی‌گرداند

تاریخ. روز هفته به صورت عددی بین 1 و 7 برگردانده می شود.

شامل؛ 1 یکشنبه، 2 دوشنبه و غیره است.

یک عدد صحیح حاوی ساعت را به عنوان بخشی از زمان برمی‌گرداند،

عددی بین 0 تا 23، شامل. اگر عبارت D نباشد

پس حاوی مقادیر زمانی استساعت0 را برمی گرداند

توابع(ar-آدامس)

DateAdd(S, N, د)

سریال تاریخ (N، N، N)

سریال زمانی (N، N، N)

برمی‌گرداند/عمل

یک عدد صحیح حاوی دقیقه را به عنوان بخشی از زمان برمی‌گرداند

نوع عبارت تاریخ. دقیقه ها به صورت عددی بین 0 برگردانده می شوند

و 59 شامل. اگر عبارت D حاوی مقدار نباشد

زماندقیقه0 را برمی گرداند

یک عدد صحیح حاوی ثانیه را به عنوان بخشی از زمان در برمی‌گرداند

نوع عبارت تاریخ. ثانیه ها به صورت عددی بین برگردانده می شوند

0 و 59 شامل. اگر عبارت D حاوی مقدار نباشد

زماندومین0 را برمی گرداند

مقدار [نوع گونه(تاریخ)]، حاوی تاریخ به

DateDiff(S، D1، مقدار [نوع گونه(طولانی)] تعداد موقت D2[،Nl [, ن2 ]]) فواصل بین دو تاریخ خاص DatePart(S، D، [، قسمت [نوع] مشخص شده را برمی‌گرداند گونه(عدد صحیح)] ن1 [, ن2]]) تاریخ داده شده

که بازه زمانی داده شده به آن اضافه می شود

مقدار تاریخ متوالی را برای تاریخ معین برمی گرداند. از چپ به راست، آرگومان ها سال، ماه و روز را نشان می دهند. آرگومان سال باید یک عدد صحیح بین 100 و 9999، ماهها بین 1 تا 12، روزها بین 1 تا 31 باشد (همه محدوده ها شامل هستند)

مقدار زمان سریال را برمی‌گرداند. از چپ به راست، آرگومان ها ساعت، دقیقه و ثانیه را نشان می دهند. آرگومان ساعت باید یک عدد صحیح بین 0 تا 23 باشد دقیقه و ثانیه هر دو باید اعدادی از 0 تا 59 باشندمقداری از نوع را برمی‌گرداند تاریخ، معادل تاریخی است که توسط آرگومان E داده می شود، که باید رشته، عدد یا باشد ثابت نشان دهنده تاریخ

نیمه شب با توجه به زمان سیستم کامپیوتربرخی از این توابع قبلاً در مثال‌های این کتاب استفاده شده‌اند، برخی دیگر بعداً مورد استفاده قرار خواهند گرفت.

توابع رشته

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

مقداری از نوع را برمی‌گرداند تاریخ A حاوی زمان مشخص شده توسط آرگومان E است که می تواند یک رشته، یک عدد یا ثابت نشان دهنده زمانعددی را برمی‌گرداند که تعداد ثانیه‌ها را نشان می‌دهد

جدول 18- توابع رشته (N هر عبارت عددی معتبر است و S هر عبارت رشته معتبر است)

آدامس)

موقعیت S2 را در S1 برمی گرداند. N1 موقعیت شروع برای

جستجو کردن؛ N2 نوع مقایسه را تعریف می کند. N1 و N2 اختیاری هستند. اگر N2 حذف شود، جریان نصب و راه اندازیگزینه مقایسه کنید InStrRev(Sl, S2 موقعیتی را که رشته S2 در S1 ظاهر می شود را برمی گرداند

[، Nl[، N2]]) LCase(S)

Len(S) LTrim(S)

فاصله (N) StrComp(Sl، S2، N)

در جهت از انتهای (یا N1) تا ابتدای رشته. N2 نوع مقایسه را تعریف می کند. اگر N2 حذف شود، جستجو استفاده می کند نصب فعلیگزینه مقایسه کنید

یک رشته (نوع رشته) حاوی یک کپی از S با تمام حروف بزرگ به کاراکتر تبدیل شده است حروف کوچک

یک رشته را برمی گرداند. N کاراکتر را از S کپی می کند، از سمت چپ شروع می شود شخصیت افراطیاس

تعداد کاراکترها را در S، از جمله پیشرو و انتهایی، برمی‌گرداند فضاها

از سمت چپ رشته (فضاهای پیشرو)یک رشته را برمی گرداند. کاراکترهای N2 را از S کپی می‌کند و از موقعیت کاراکتر در S که توسط آرگومان N1 مشخص شده است شروع می‌شود. N2 اختیاری است. اگر N2 حذف شود، Mid همه را برمی گرداند کاراکترهای یک رشتهاساز موقعیتن1 تا انتهای خطمقداری از نوع String را برمی‌گرداند. N کاراکتر را از S کپی می کند،

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

پس از حذف کاراکترهای فضای خالی، یک کپی از رشته S را برمی گرداند

از سمت راست رشته (کاراکترهای پایانی)

رشته ای از فاصله های طولی را برمی گرداندنشخصیت ها

S1 را با S2 مقایسه می کند و عددی را نشان می دهد که نتیجه مقایسه را نشان می دهد: -1 اگر SI< S2; 0, если SI = S2; 1, если SI >S2. N اختیاری است و نشان می دهد که آیا مقایسه باید به حروف کوچک و بزرگ حساس باشد یا خیر. اگر N حذف شود، رشته ها با استفاده از تنظیمات فعلی مقایسه می شوند. گزینهمقایسه کنید

رشته تبدیل شده به را برمی گرداند فرم جدیدبسته به کد عددی مشخص شده توسط آرگومان N. VBA ثابت های داخلی را برای استفاده با تابع StrConv فراهم می کند. مفیدترین آنها عبارتند از: vbProperCase(رشته ای را به گونه ای تبدیل می کند که هر حرفی که یک کلمه را شروع می کند بزرگ شود) vbLowerCase(رشته را به حروف کوچک تبدیل می کند) و vbUpperCase(رشته را به حروف بزرگ تبدیل می کند)

تابع (ar- Returns/Actionآدامس)

String(N, S) رشته ای از طول N کاراکتر متشکل از کاراکتر را برمی گرداند

توسط شخصیت اول دراس Trim(S) یک کپی از رشته S را بعد از و را برمی گرداند

دنبال کاراکترهای فضای خالی از این رشته UCase(S) S را با تمام کاراکترهای کوچک برمی گرداند،

تبدیل به کاراکترهای بزرگچندین مورد در جدول ذکر شده است. 16 تابع تبدیل نوع داده نیز برای دستکاری رشته اعمال می شود: به ویژه Chr، Format، CStr.

قالب بندی مقادیر داده ها

اگرچه VBA می تواند به طور خودکار هر نوع داده ای را به رشته ای برای نمایش با تابع MsgBox یا برای درج در کاربرگ Excel تبدیل کند، فرمت داده ای که VBA انتخاب می کند ممکن است آن چیزی نباشد که شما می خواهید. هنگام تبدیل یک عدد به رشته، VBA هزار جداکننده، علامت دلار یا سایر قالب‌بندی‌های عددی را به رشته اضافه نمی‌کند. همچنین، اگر عدد بسیار بزرگ یا بسیار کوچک باشد، VBA رشته ای ایجاد می کند که عدد را در قالب نمایی نشان می دهد. هنگام تبدیل تاریخ، VBA همیشه از فرمت کوتاه تاریخ و زمان استفاده شده توسط سیستم عامل رایانه استفاده می کند و همیشه تاریخ و زمان را نمایش می دهد.

برای دریافت تقریباً هر قالب تاریخی هنگام تبدیل اعداد یا تاریخ ها به رشته ها، می توانید از تابع استفاده کنید قالب; شما حتی می توانید از تابع استفاده کنید قالببرای قالب بندی داده های رشته ای بر اساس یک الگوی خاص. همچنین اگر نیاز دارید که داده ها در قالب خاصی ظاهر شوند، می توانید قالب های صفحه نمایش سفارشی ایجاد کنید. نحو عملگر Format به صورت زیر است:

قالب( اصطلاح [, قالب[, روز اول هفته [, هفته اول سال]]])

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

برای استدلال روز اول هفته و هفته اول سال VBA ثابت‌هایی را نام‌گذاری کرده است که می‌توانید در سیستم راهنمای VBA در قسمت Date Constants با آنها آشنا شوید.

برای استفاده از تابع قالب، می توانید یک قالب از پیش تعریف شده را مشخص کنید (به نام فرمت نامگذاری شده(تحت عنوان قالب، یا با استفاده از ترکیب گروه خاصی از کاراکترها به نام تصویری از یک فرمت خاص ایجاد کنید نگهدارنده های مکان(نگهدارنده های مکان). اگر نیاز به ایجاد قالب‌های سفارشی برای اعداد، تاریخ‌ها یا زمان دارید، باید رشته‌ای حاوی کاراکترهای نگهدارنده مکان ایجاد کنید تا تصویر قالبی را که تابع باید استفاده کند، مشخص کنید. قالبهنگام تبدیل مقادیر به یک رشته (جدول 19). علاوه بر این، در جدول. 19 استفاده شده

به عنوان مثال، مقدار عددی 1234.5 است.

برای ایجاد سفارشی

جدول 19- متغیرهایی را قالب بندی کنید

شخصیت نگهدارنده مکان

عمل

کاراکتر عددی، اگر یک رقم در آن موقعیت وجود داشته باشد، یا اگر عددی وجود نداشته باشد، 0 را نشان می دهد. می توانید از کاراکتر 0 برای نمایش صفرهای ابتدایی برای اعداد صحیح و صفرهای انتهایی برای اعشار استفاده کنید. 00000.000 00124500 را نمایش می دهد

کاراکتر عددی، اگر یک رقم در آن موقعیت باشد، یک رقم را نشان می‌دهد، در غیر این صورت چیزی را نمایش نمی‌دهد. کاراکتر fill # معادل 0 است، با این تفاوت که صفرهای پیشرو و انتهایی نمایش داده نمی شوند. #####.### 1234.5 را نمایش می دهد

$ یک علامت دلار را نشان می دهد. $###,###.00 $1,234.50 را نمایش می دهد

مکان اعشاری، نقطه اعشار را در موقعیت تعیین شده در رشته مکان نگهدار 0 نمایش می دهد. #.##.## 1234.5 را نمایش می دهد

کاراکتر درصد، مقدار را در 100 ضرب می کند و یک علامت درصد را در موقعیت نشان داده شده توسط 0 مکان نگهدار اضافه می کند. #0.00% عدد 0.12345 را به صورت 12.35% نمایش می دهد (12.345 به 12.35 گرد می شود)

، (کاما)

جداکننده هزار، کاما را به عنوان جداکننده هزاران در رشته کاراکترهای متغیر 0 و # اضافه می کند. ###،###،###. 00 1234.50 را نمایش می دهد

مقادیر را در قالب نمایی با علامت نما فقط برای مقادیر منفی نمایش می دهد. #.#### E00 نمایشگر 1.2345E03; 0.12345 به صورت 1.2345E-01 نمایش داده می شود

مقادیر را در قالب نمایی با یک توان برای مقادیر مثبت و منفی نمایش می دهد. #.#### E+00 1.2345E+03 را نمایش می دهد

روز، ماه و سال را برای قالب بندی مقادیر تاریخ از هم جدا می کند. میلی متر/ DD/ yyنمایش در 06/06/97. کاراکترهای "/" را می توان با نویسه های خط فاصله جایگزین کرد تا به صورت 06-06-97 نمایش داده شود

نحوه نمایش ماه ها را در تاریخ مشخص می کند. مترنمایشگر 2، میلی متر– 02, هوم- فوریه mmmm- فوریه

نحوه نمایش روزها را در تاریخ مشخص می کند. دنمایش 1، DD 01 را نمایش می دهد، ddd- جمعه، dddd- جمعه

y روز سال را به صورت عددی از 1 تا 366 نمایش می دهد

نحوه نمایش سال ها را در تاریخ مشخص می کند. yyنمایشگر 99، uuuu– 1999

سه ماهه سال را به صورت عددی بین 1 تا 4 نمایش می دهد

روز هفته را به صورت عدد نشان می دهد (1 یکشنبه است)

هفته سال را به صورت عددی بین 1 تا 54 نمایش می دهد

شخصیت نگهدارنده مکان

عمل

: (دونقطه) ساعت ها، دقیقه ها و ثانیه ها را در مقادیر قالب زمانی جدا می کند. هه: میلی متر: ssنمایش 02:02:02

نحوه نمایش ساعت را مشخص می کند. برای مقدار زمانی 02:01:38 ساعتنمایشگر 2، هه 02 را نمایش می دهد

مکان نگهدار دقیقه برای زمان. برای ارزش زمانی 02:01:08 nنمایش 1 و nn 01 را نمایش می دهد

متغیر ثانیه برای زمان. برای ارزش زمانی 02:01:08 س 8 را نمایش می دهد و ss 08 را نمایش می دهد

نمایش زمان در قالب زمانی 12 ساعته با اضافه شدن AM و PM. ساعت: nnقبل از ظهر بعد از ظهرساعت 4:00 بعد از ظهر نمایش داده می شود. فرمت های جایگزین عبارتند از: am/pm، A/P و a/p

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

تمام کاراکترها را با حروف بزرگ نمایش می دهد

تمام کاراکترها را با حروف کوچک نمایش می دهد

استفاده از ویژگی های برنامه میزبان

علاوه بر توابع تعبیه شده در ویژوال بیسیک برای برنامه ها، برخی از توابع برنامه میزبان VBA از کد VBA در دسترس هستند. میزبان-کاربردبرنامه ای است که رویه های VBA مانند Word، Excel، PowerPoint، Outlook یا FrontPage را توسعه می دهد. برای مثال اکسل دارای توابع مختلفی است که عملیات ریاضی، منطقی، مالی و آماری را بر روی داده های موجود در کاربرگ ها انجام می دهد. بسیاری از این توابع اکسل (البته نه همه) از طریق کد VBA قابل دسترسی هستند. توابع برنامه میزبان موجود در VBA بخشی از VBA نیستند، بلکه بخشی از برنامه میزبان هستند. توابع موجود برای VBA در یک برنامه میزبان ممکن است در دیگری در دسترس نباشد.

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

وظیفه 6.رویه ای بنویسید که از تابع Excel Max استفاده می کند.

برای این:

رویه را وارد کنید (فهرست 8):

فهرست 8 - استفاده از یک تابع اکسلحداکثر

1 فهرست فرعی3_08()

2 MsgBox Application.Max(9، 17، -18، 20)

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

کاربرد.

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

همه ویژگی های برنامه میزبان برای VBA در دسترس نیست. اگر مطمئن نیستید که ویژگی برنامه میزبان خاصی برای VBA در دسترس است، از آن استفاده کنید هدف - شی مرورگربرای بررسی اینکه آیا لیست شامل است یا خیر اعضا (جزء) این تابع، با انتخاب شده است تابع کاربرگ در لیست کلاس ها (کلاس ها) و با برنامه میزبان انتخاب شده در لیست پروژه/ کتابخانه (پروژه / کتابخانه). اگر عملکرد مورد نظرلیست نشده است، برای VBA در دسترس نیست.

کنترل سوالات

    مفهوم «انواع داده» را تعریف کنید. چه نوع داده ای در VBA استفاده می شود؟

    شناسه چیست؟

    متغیر چیست؟ عبارت "تعریف یک متغیر به طور ضمنی" به چه معناست و "صراحتا" به چه معناست؟

    چه ثابت هایی در VBA استفاده می شود؟ ثابت های داخلی چیست؟

    توابع InputBox و MsgBox برای چیست؟

    بیان چیست؟

    سینتکس عملگر انتساب را تعریف کنید.

    عملیات رابطه ای چیست؟

    اولویت عملیات ریاضی چیست؟

    چه کلمه کلیدی در VBA برای استفاده در هنگام دسترسی وجود دارد توابع اکسل? برای چه کاری می توانید از پنجره Object Browser استفاده کنید؟

  • بولی- نوع داده بولی فقط می تواند دو مقدار را ذخیره کند: True یا False، true یا false. استفاده از آن به جای متغیرهای عدد صحیح سبک برنامه نویسی خوبی است.
  • بایت ها- نوع بایت در ویژوال بیسیک 5 جدید است و برای ذخیره اعداد صحیح از 0 تا 255 طراحی شده است. نسخه های قبلیویژوال بیسیک. علاوه بر این، هنگام کار با فایل های باینری استفاده می شود.
  • واحد پول - نوع داده شدهدر نسخه های GW-BASIC و QuickBASIC وجود ندارد. برای جلوگیری از خطاهای تبدیل طراحی شده است. اعداد اعشاریبه شکل باینری و بالعکس. (نمی توان 1/10 را به عنوان مجموع 1/2، 1/4، 1/8، 1/16 و غیره نشان داد.) این نوع می تواند تا 4 رقم بعد از نقطه اعشار و حداکثر 14 رقم قبل از آن داشته باشد. آی تی. در این محدوده، محاسبات دقیق خواهد بود. شناسه کاراکتر "@" است. از آنجایی که تمامی عملیات حسابی، به جز جمع و تفریق، مانند متغیرهای با دقت دوگانه به کندی انجام می شود، این نوع برای محاسبات مالی ترجیح داده می شود. (برای کسانی که تعجب می کنند، این نوع از اعداد صحیح 19 رقمی استفاده می کند که سپس بر 10000 تقسیم می شوند. این امکان برای 15 رقم اعشار و 4 رقم اعشار را فراهم می کند.)
  • تاریخ- این نوع داده به شما امکان می دهد مقادیر زمان و تاریخ را بین نیمه شب 1 ژانویه 100 تا نیمه شب 31 دسامبر 9999 ذخیره کنید. چنین مقادیری با کاراکترهای "#" در متن برنامه مشخص می شوند، به عنوان مثال: NewYear = #1 ژانویه 2000# اگر فقط یک مقدار تاریخ وارد شده باشد، Visual Basic زمان را 00:00 فرض می کند.
  • اعشاریقوی ترین نوع عددی است. برای ذخیره یک متغیر از این نوع، 16 بایت اختصاص داده می شود. مرزهای منفی و مثبت بازه‌ای که مقادیر ممکن این متغیر در آن قرار دارند، در قدر مطلق یکسان هستند و در صورت استفاده از اعداد صحیح برابر با +/- 79 228 162 514 264 337 593 543 950 335 هستند. اگر نیاز به ذخیره مقادیر کسری باشد، بسته به اینکه سازنده از چند رقم اعشار استفاده می کند، مرزهای مقادیر ممکن با چندین مرتبه بزرگی تغییر می کند. این نوع فقط برای ذخیره اعشار قابل استفاده است. توسعه دهنده می تواند تا 28 رقم اعشار استفاده کند.
  • دو برابر- متغیرهایی از این نوع به شما امکان می دهند اعداد را با دقت حداکثر 16 رقم و حداکثر 300 کاراکتر ذخیره کنید. شناسه "#" است. محاسبات با آنها نیز تقریبی است و سرعت آنها نسبتاً کم است. از متغیرهای دوگانه عمدتاً برای محاسبات علمی استفاده می شود.
  • عدد صحیح- متغیرهای عدد صحیح فقط می توانند اعداد صحیح نسبتا کوچک (بین -32768 و +32767) را ذخیره کنند. عملیات حسابیبیش از این اعداد بسیار سریع انجام می شود. کاراکتر "%" برای نشان دادن این نوع استفاده می شود: IntegerPerem% = 3
  • طولانی- این نوع برای اولین بار در زبان QuickBASIC ظاهر شد. چنین متغیرهایی مقادیر صحیح را از -2 147 483 648 تا +2 147 483 647 ذخیره می کنند. با نماد "&" نشان داده شده است. عملیات محاسباتی روی چنین اعدادی نیز بسیار سریع است و هنگام کار با پردازنده 386DX یا 486DX، تنها تفاوت کمی در سرعت محاسبه بین Long و Integer وجود داشت. LongPerem& = 123456789
  • هدف - شی- در واقع، یک متغیر از این نوع فقط اشاره ای به یک نمونه خاص از یک شی است. متغیر در 4 بایت ذخیره می شود.
  • تنها- شناسه این اعداد نماد "!" است. این نوع متغیر به شما امکان می دهد اعداد کسری را تا هفت رقم ذخیره کنید. یعنی اگر نتیجه 12345678.97 باشد، قسمت 8.97 دقیق نیست. نتیجه می تواند برای مثال 12345670.01 باشد. اعداد می توانند حداکثر 38 کاراکتر باشند. محاسبات با این متغیرها نیز تقریبی خواهد بود. علاوه بر این، محاسبات کندتر از متغیرهای عدد صحیح است.
  • رشته- متغیرهای رشته ای کاراکترها را ذخیره می کنند. یک راه برای تعیین این نوع متغیر، اضافه کردن یک کاراکتر "$" به انتهای نام آن است، به عنوان مثال: StringPerem$. از نظر تئوری، چنین متغیری می تواند تا 2 میلیارد کاراکتر داشته باشد. در هر صورت در یک کامپیوتر خاص به دلیل حجم محدود این عدد بسیار کمتر خواهد بود. حافظه دسترسی تصادفی، منابع ویندوز یا تعداد کاراکترهای استفاده شده در فرم. یکی از اساسی ترین کاربردهای متغیرهای رشته ای، انتخاب اطلاعات از فیلدهای ورودی است.

به عنوان مثال، اگر متن را در جعبه متن 1 تغییر دهید، جعبه متن همان متن را نشان می دهد، اما بدون آخرین کاراکتر سمت راست:

گزینه Explicit Dim strText As String Private Sub Form_Load() Text1.Text = "" Text2.Text = "" End Sub Private Sub Text1_Change() در خطا Resume Next Text2.Text = strText strText = Left(Text1.Text, Len(Text1 .Text) - 1) End Sub

گونه- این نوع در ویژوال بیسیک 5 از نسخه 2.0 اضافه شد. یک متغیر از نوع واریانت می‌تواند حاوی داده‌هایی از هر نوع باشد. اگر ویژوال بیسیک نوع داده های دریافتی را نمی داند، باید از variant استفاده کنید. نوع اطلاعات مهم نیست، زیرا نوع می تواند حاوی هر نوع داده ای باشد (عددی، تاریخ/زمان، رشته). ویژوال بیسیک تبدیل داده های لازم را به صورت خودکار انجام می دهد، بنابراین لازم نیست نگران این موضوع باشید. از سوی دیگر، می‌توانید از توابع داخلی برای بررسی نوع داده‌های ذخیره‌شده در یک متغیر از نوع استفاده کنید. آنها بررسی اینکه آیا کاربر اطلاعات را به درستی وارد می کند آسان می کند. استفاده از یک نوع داده مانند واریانت سرعت برنامه را کند می کند، زیرا برای عملیات تبدیل نوع نیاز به زمان و منابع دارد. علاوه بر این، بسیاری از برنامه نویسان متوجه می شوند که استفاده از تبدیل خودکار نوع داده منجر به برنامه های شلخته می شود. تنها دلیلدر استفاده از واریانت، خطاهای احتمالی در تبدیل نوع مستقیماً توسط برنامه نویس نهفته است.

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

ایجاد نوع داده خودتان با استفاده از عبارت Type انجام می شود که در قسمت General از کد فرم استفاده می شود.