توابع داخلی زیادی در Excel VBA وجود دارد که میتوانیم از آنها برای ساده سازی برنامههای VBA خود استفاده کنیم. در این میان جعبه پیام و جعبه ورودی بیشترین استفاده را دارند. این دو عملکرد مفید هستند زیرا برنامه های ماکرو Excel VBA را تعاملی تر می کنند. جعبه ورودی به کاربر اجازه می دهد تا داده ها را وارد کند در حالی که جعبه پیام خروجی را به کاربر نمایش می دهد.
دانلود دوره برنامه نویسی حرفه ایی در اکسل با استفاده از VBA
هدف از تابع MsgBox این است که یک جعبه پیام پاپ آپ تولید کند و از کاربر بخواهد تا قبل از ادامه کار روی دکمه فرمان کلیک کند. کد جعبه پیام به شرح زیر است:
yourMsg=MsgBox(Prompt, Style Value, Title)
اولین آرگومان، Prompt، پیام را در کادر پیام نمایش می دهد. Style Value تعیین می کند که چه نوع دکمه فرمانی در کادر پیام ظاهر می شود. جدول 3.1 دکمه فرمان قابل نمایش را فهرست می کند. آرگومان Title عنوان جعبه پیام را نمایش می دهد.
جدول 3.1: مقادیر سبک و دکمه های فرمان
میتوانیم از ثابت نامگذاری شده به جای اعداد صحیح بری آرگومان دوم استفاده کنیم تا برنامهها خواناتر شوند. در واقع، VBA به طور خودکار لیستی از ثابت های نامگذاری شده را نشان می دهد که می توانید یکی از آنها را انتخاب کنید. به عنوان مثال، yourMsg=MsgBox ("OK برای ادامه"، 1، "Startup Menu") و yourMsg=Msg ("OK برای ادامه کلیک کنید". vbOkCancel، Startup Menu") یکسان هستند. yourMsg متغیری است که مقادیری را نگه میدارد که توسط تابع MsgBox ( ) برگردانده شدهاند. مقادیر بر اساس نوع دکمه هایی که توسط کاربران کلیک می شود تعیین می شود. باید به عنوان نوع داده Integer در رویه یا در بخش اعلان عمومی اعلام شود. جدول 3.2 مقادیر، ثابت های نامگذاری شده مربوطه و دکمه ها را نشان می دهد
جدول 3.2: مقادیر برگشتی و دکمه های دستوری
. . .
Example 3.1
در این مثال، پیام سلول (1،2) "اولین برنامه VBA شما" در کادر پیام نمایش داده می شود. همانطور که در شکل 3.1 نشان داده شده است، از آنجایی که هیچ ثابت نامی اضافه نشده است، پیام به سادگی پیام و دکمه "OK" را نمایش می دهد.
Private Sub CommandButton1_Click() Dim YourMsg As String
Cells(1, 2) = "Your first VBA program" YourMsg = Cells(1, 2)
MsgBox YourMsg End Sub
شکل 3.1: جعبه پیام با دکمه OK
Example 3.2
در این مثال، ثابت نامگذاری شده vbYesNoCancel به عنوان آرگومان دوم اضافه می شود، بنابراین جعبه پیام دکمه های Yes، No و Cancel را نمایش می دهد، همانطور که در شکل 3.2 نشان داده شده است.
Private Sub CommandButton1_Click() Dim YourMsg As String
Cells(1, 2) = "Your first VBA program" YourMsg = Cells(1, 2)
MsgBox YourMsg, vbYesNoCancel End Sub
شکل 3.2: جعبه پیام با دکمه های بله، خیر و لغو
برای اینکه جعبه پیام پیچیده تر به نظر برسد، می توانید یک نماد در کنار پیام اضافه کنید. همانطور که در جدول 11.3 نشان داده شده است، چهار نوع آیکون در VBE موجود است.
جدول 3.3
کد در این مثال اساساً مشابه مثال 3.2 است، اما vbExclamation نامگذاری شده به عنوان آرگومان سوم اضافه شده است. دو ثابت نام را می توان با استفاده از علامت "+" به یکدیگر متصل کرد. همانطور که در شکل 3.3 نشان داده شده است، جعبه پیام اکنون نماد تعجب را نشان می دهد.
Private Sub CommandButton1_Click() Dim YourMsg As String
Cells(1, 2) = "Your first VBA program" YourMsg = Cells(1, 2)
MsgBox YourMsg, vbYesNoCancel + vbExclamation End Sub
شکل 3.3: جعبه پیام با نماد تعجب.
حتی می توانید بر اساس مقادیر برگشتی نشان داده شده در جدول 3.2، ردیابی کنید که کاربر روی کدام دکمه کلیک می کند. در مثال 3.4 از عملگرهای شرطی If….Then…Else استفاده شده است. شما هنوز نیازی به درک دقیق منطق برنامه ندارید، آنها در فصل بعدی توضیح داده خواهند شد.
Private Sub CommandButton1_Click()
Dim testMsg As Integer
testMsg = MsgBox("Click to Test", vbYesNoCancel + vbExclamation, "Test Message")
If testMsg = 6 Then
Cells(1,1).Value = "Yes button was clicked" ElseIf testMsg = 7 Then
Cells(1,1).Value = "No button was clicked" Else
Cells(1,1).Value = "Cancel button was clicked" End If
End Sub
تابع InputBox( ).
InputBox( ) تابعی است که یک کادر ورودی را نمایش می دهد که در آن کاربر می تواند مقدار یا پیامی را به صورت متن وارد کند. قالب myMessage=InputBox است (Prompt، Title، default_text، X-position، y-position)
myMessage یک نوع داده متفاوت است اما معمولاً به عنوان رشته ای اعلام می شود که ورودی پیام توسط کاربران را می پذیرد. استدلال ها به شرح زیر توضیح داده شده است:
درخواست - پیام نمایش داده شده در صندوق ورودی.
عنوان - عنوان کادر ورودی.
متن پیشفرض - متن پیشفرضی که در قسمت ورودی ظاهر میشود و کاربران میتوانند از آن به عنوان ورودی مورد نظر خود استفاده کنند یا ممکن است آن را به پیام دیگری تغییر دهند.
موقعیت x و موقعیت y - موقعیت یا مختصات جعبه ورودی.
رابط مثال 3.5 در شکل 3.4 نشان داده شده است
Private Sub CommandButton1_Click()
Dim userMsg As String
userMsg = InputBox("What is your message?", "Message Entry Form", "Enter your messge here", 500, 700)
Cells(1,1).Value=userMsg End Sub
هنگامی که کاربر روی دکمه OK کلیک می کند، کادر ورودی همانطور که در شکل 3.4 نشان داده شده است ظاهر می شود. توجه داشته باشید که عنوان کادر ورودی "فرم ورود پیام" و پیام اعلان "پیام شما چیست" است. پس از اینکه کاربر پیام را وارد کرد و دکمه OK را کلیک کرد، پیام در سلول A1 نمایش داده می شود
شکل 3.4: جعبه ورودی
پاسخ ها