توابع داخلی زیادی در Excel VBA وجود دارد که میتوانیم از آنها برای ساده سازی برنامههای VBA خود استفاده کنیم.
در این میان جعبه پیام و جعبه ورودی بیشترین استفاده را دارند. این دو عملکرد مفید هستند زیرا برنامه های ماکرو Excel VBA را تعاملی تر می کنند. جعبه ورودی به کاربر اجازه می دهد تا داده ها را وارد کند در حالی که جعبه پیام خروجی را به کاربر نمایش می دهد.
دانلود دوره برنامه نویسی حرفه ایی در اکسل با استفاده از VBA
هدف از تابع MsgBox این است که یک جعبه پیام پاپ آپ تولید کند و از کاربر بخواهد تا قبل از ادامه کار روی دکمه فرمان کلیک کند. کد جعبه پیام به شرح زیر است:
yourMsg=MsgBox(Prompt, Style Value, Title)
اولین آرگومان، Prompt، پیام را در کادر پیام نمایش می دهد. Style Value تعیین می کند که چه نوع دکمه فرمانی در کادر پیام ظاهر می شود. جدول 3.1 دکمه فرمان قابل نمایش را فهرست می کند. آرگومان Title عنوان جعبه پیام را نمایش می دهد.
جدول 3.1: مقادیر سبک و دکمه های فرمان
میتوانیم از ثابت نامگذاری شده به جای اعداد صحیح بری آرگومان دوم استفاده کنیم تا برنامهها خواناتر شوند. در واقع، VBA به طور خودکار لیستی از ثابت های نامگذاری شده را نشان می دهد که می توانید یکی از آنها را انتخاب کنید.
جدول 3.2: مقادیر برگشتی و دکمه های دستوری
. . .
مثال 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.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
برای اینکه جعبه پیام پیچیده تر به نظر برسد، می توانید یک نماد در کنار پیام اضافه کنید. همانطور که در جدول 11.3 نشان داده شده است، چهار نوع آیکون در VBA موجود است.
جدول 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.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
تابعی است که یک کادر ورودی را نمایش می دهد که در آن کاربر می تواند مقدار یا پیامی را به صورت متن وارد کند.
قالب 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 نمایش داده می شود