تابع msgbox در اکسل | پیغام دادن در اکسل | تابع msgbox در اکسل و VBA

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

تابع msgbox در اکسل چیست

به طور کلی میتوان گفت تابع ( ) Msgbox  یکی از توابعی است که در زبان vba مورد استفاده قرار میگیرد و میتواند قابلیت تعامل با کاربر را به نرم افزار اضافه کند.

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

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

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

MsgBox( Prompt, [Buttons], [Title], [HelpFile], [Context] )

  • Prompt : متن نمایش داده شده برای کاربر است.
  • [Buttons] :‌این یک آرگومان اختتیاری است که میتوان در آن مقادیری را اعمال کرد و نوع پنجره ای که به کاربر نمایش داده میشود را تعیین کرد. به صورت پیش فرض در صورتی که این بخش حالی باشد دکمه ok نمایش داده میشود و برای نمایش سایر گزینه ها باید آرگومان های دیگری را در این بخش تعریف کرد.
  • [Ttile] : در این بخش میتوان عنوان پنجره را تعیین کرد.
  • [HelpFile] : در این بخش میتوان متن اختیاری اضافه کرد که نقش راهنمای پنجره را برعهده دارد.
  • [Context] : در این بخش عدد قرار میگیرد که میتواند عنوان فایل راهنما را تعیین کند.

تابع msgbox در اکسل چیست

قسمت های مختلف تابع msgbox در اکسل

بخش های مختلف سینتکس تعریف تابع msgbox به صورت زیر تعریف میشوند:

  • [Ttile]: در این بخش میتوان عنوان پنجره را تعیین کرد.. اگر چیزی را مشخص نکنید، نام برنامه را نمایش می دهد که در این مورد مایکروسافت اکسل است.
  • Prompt: این پیامی است که می خواهید نمایش داده شود. می توانید از این فضا برای نوشتن چند خط یا حتی نمایش جداول/داده ها در اینجا استفاده کنید. شما می توانید تا 1024 کاراکتر در این بخش استفاده کنید و همچنین می توانید از آن برای نمایش مقادیر متغیرها استفاده کنید.
  • [Buttons]: در حالی که OK دکمه پیش فرض است، می توانید آن را برای نمایش دکمه هایی مانند بله/خیر، بله/نه/لغو، تلاش مجدد/نادیده گرفتن و غیره سفارشی سازی کنید.
  • Close Icon: با کلیک بر روی نماد بستن می توانید کادر پیام را ببندید.
  • Prompt : متن نمایش داده شده برای کاربر است.
  • [Buttons] :‌این یک آرگومان اختتیاری است که میتوان در آن مقادیری را اعمال کرد و نوع پنجره ای که به کاربر نمایش داده میشود را تعیین کرد. به صورت پیش فرض در صورتی که این بخش حالی باشد دکمه ok نمایش داده میشود و برای نمایش سایر گزینه ها باید آرگومان های دیگری را در این بخش تعریف کرد.
  • [Ttile] : در این بخش میتوان عنوان پنجره را تعیین کرد.
  • [HelpFile] : در این بخش میتوان متن اختیاری اضافه کرد که نقش راهنمای پنجره را برعهده دارد. شما می توانید یک فایل راهنما را مشخص کنید که وقتی کاربر روی دکمه Help کلیک می کند قابل دسترسی باشد. دکمه راهنما فقط زمانی ظاهر می شود که از کد دکمه برای آن استفاده کنید. اگر از فایل راهنما استفاده می کنید، باید آرگومان زمینه را نیز مشخص کنید.
  • [Context] : در این بخش عدد قرار میگیرد که میتواند عنوان فایل راهنما را تعیین کند.

اگر تازه کار هستید میتوانید از المان های [helpfile] و [context] استفاده نکنید زیرا در کل به ندرت از این ها استفاده میشود.

قسمت های مختلف تابع msgbox در اکسل

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

مقدارنوع دکمه نمایش داده شده
vbOKOnlyفقط دکمه OK را نشان می دهد.
vbOKCancelدکمه های OK و Cancel را نشان می دهد.
vbAbortRetryIgnoreدکمه های لغو، تلاش مجدد و نادیده گرفتن را نشان می دهد.
vbYesNoدکمه های Yes و No را نشان می دهد.
vbYesNoCancelدکمه های بله، خیر و لغو را نشان می دهد.
vbRetryCancelدکمه‌های Retry و Cancel را نشان می‌دهد.
vbMsgBoxRtlReadingدکمه را به صورت راست به چپ تعریف میکند که از این گزینه میتوان برای دکمه های فارسی استفاده کرد.
vbMsgBoxRightاین گزینه میتواند متن داخل دکمه را به راست چین تعیین کند.
vbExclamationآیکن اخطار را در پیام دکمه نمایش میدهد.
vbInformationدر پیام دکمه علامت تعجب نمایش میدهد.
vbQuestionدر پیام دکمه علامت سوال نمایش میدهد.
vbCriticalدر پیام دکمه علامت ضربدر نمایش میدهد.
vbMsgBoxHelpButtonدکمه Help را نشان می دهد. برای این کار، باید از آرگومان های کمک و زمینه در تابع MsgBox استفاده کنید.
vbDefaultButton1دکمه اول را پیش فرض می کند. برای تغییر دکمه پیش فرض می توانید شماره را تغییر دهید. به عنوان مثال، vbDefaultButton2 دکمه دوم را به عنوان پیش فرض قرار می دهد

مثال تابع msgbox اکسل

باید این نکته را در نظر داشته باشید که این تابع میتواند روند اجرای برنامه را تغییر دهد برای مثال اگر OK را انتخاب کنید، کد باید ادامه یابد و اگر روی Cancel کلیک کنید، کد باید متوقف شود. این کار را می توان با استفاده از متغیرها و نسبت دادن مقدار Message Box به یک متغیر انجام داد. در بخش های بعدی این آموزش به این موضوع خواهیم پرداخت.

حال بیایید به چند نمونه از نحوه نمایش دکمه های مختلف در MsgBox و نحوه ظاهر آن نگاهی بیندازیم.

  • دکمه‌ vbOKOnly در تابع MsgBox (پیش‌فرض)

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

دکمه‌ vbOKOnly در تابع MsgBox (پیش‌فرض)

کد این پیام به صورت زیر میباشد:

()Sub DefaultMsgBox
"This is a sample box "MsgBox
End Sub

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

  • دکمه‌های OK & Cancel در تابع MsgBox

اگر فقط می خواهید دکمه OK و Cancel را نشان دهید، باید از ثابت vbOKCancel استفاده کنید.

کد این نوع پیام ها به صورت زیر خواهد بود:

()Sub MsgBoxOKCancel
MsgBox "Want to Continue?", vbOKCancel
End Sub

دکمه‌های OK & Cancel در تابع MsgBox
  • دکمه‌های  Abort , Retry و Ignore در تابع MsgBox

می توانید از ثابت “vbAbortRetryIgnore” برای نمایش دکمه های Abort، Retry و Ignore استفاده کنید. کد این پیام به صورت زیر است:

()Sub MsgBoxAbortRetryIgnore
MsgBox "What do you want to do?", vbAbortRetryIgnore
End Sub
دکمه‌های  Abort , Retry و Ignore در تابع MsgBox
  • دکمه‌های Yes و No در تابع MsgBox

می توانید از ثابت “vbYesNo” برای نمایش دکمه های بله و خیر استفاده کنید. کد این پیام به صورت زیر است:

()Sub MsgBoxYesNo
MsgBox "Should we stop?", vbYesNo
End Sub
دکمه‌های Yes و No در تابع MsgBox
  • دکمه‌های Yes و No و Cancel در تابع MsgBox

می‌توانید از ثابت «vbYesNoCancel» برای نمایش دکمه‌های بله، خیر و لغو استفاده کنید. کد آن به صورت زیر است:

()Sub MsgBoxYesNoCancel
MsgBox "Should we stop?", vbYesNoCancel
End Sub
دکمه‌های Yes و No و Cancel در تابع MsgBox
  • دکمه‌های  Retry و Cancel در تابع MsgBox

می‌توانید از ثابت «vbRetryCancel» برای نمایش دکمه‌های Retry و Cancel استفاده کنید. کد این پیام به صورت زیر میباشد:

()Sub MsgBoxRetryCancel
MsgBox "What do you want to do next?", vbRetryCancel
End Sub
دکمه‌های  Retry و Cancel در تابع MsgBox
  • دکمه‌ Help در تابع MsgBox

می‌توانید از ثابت «vbMsgBoxHelpButton» برای نمایش دکمه کمک استفاده کنید. می توانید از آن با سایر ثابت های دکمه استفاده کنید. کد آن به صورت زیر است:

()Sub MsgBoxRetryHelp
MsgBox "What do you want to do next?", vbRetryCancel + 
vbMsgBoxHelpButton
End Sub
دکمه‌ Help در تابع MsgBox

توجه داشته باشید که در این کد دو ثابت دکمه مختلف (vbRetryCancel + vbMsgBoxHelpButton) را با هم ترکیب کرده ایم. قسمت اول دکمه های Retry و Cancel و قسمت دوم دکمه Help را نشان می دهد.

  • تنظیم یک دکمه به صورت انتخاب پیش فرض

می توانید از ثابت “vbDefaultButton1” برای تنظیم اولین دکمه به عنوان پیش فرض استفاده کنید. یعنی دکمه از قبل انتخاب شده است و اگر enter را فشار دهید آن دکمه را اجرا می کند.

در زیر کدی وجود دارد که دکمه دوم (دکمه ‘No’) را به عنوان پیش فرض تنظیم می کند.

()Sub MsgBoxOKCancel
+MsgBox "What do you want to do next?", vbYesNoCancel  
vbDefaultButton2
End Sub
تنظیم یک دکمه به صورت انتخاب پیش فرض

در بیشتر موارد، دکمه سمت چپ، دکمه پیش فرض است. می‌توانید با استفاده از vbDefaultButton2، vbDefaultButton3 و vbDefaultButton4 دکمه‌های دیگری را انتخاب کنید.

نمایش آیکن در پیام تابع MsgBox اکسل

شما میتوانید تنظیماتی را در پیام تابع MsgBox در اکسل ایجاد کنید که در متن پیام نمایش داده شده آیکن هایی نمایش داده شود. به این ترتیب شما میتوانید پیغام دادن در اکسل را به صورت سفارشی سازی شده به کاربر نمایش دهید و آن را شخصی سازی کنید.

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

نماد آیکنتوضیحات
آیکن پیام مهم vbcriticalاین آیکن به صورت ضربدر قرمز است و میتواند برای نمایش پیام های مهم و جدی به کار رود
آیکن سوال vbQuestionدر این ایکن علامت سوال است و شما میتوانید از آن برای پیام هایی که قرار است سوالی را نمایش دهند استفاده کنید.
آیکن اخطار vbExclamation  این آیکن علامت تعجب است و شما میتوانید برای پیام هایی که حاوی هشدار است از این آیکن استفاده کنید.
آیکن اطلاعات vbInformationاین آیکن به صورت Information میباشد و میتوان برای پیام هایی که اطلاعات خاصی را نمایش میدهند استفاده کنید.

شما میتوانید از این ثابت ها برای نمایش آیکن استفاده کنید. برای مثال اگر می خواهید یک نماد مهم را در MsgBox خود نشان دهید، از ثابت vbCritical استفاده کنید. شما می توانید این را همراه با سایر ثابت های دکمه (با قرار دادن علامت + بین کدها) استفاده کنید.

به عنوان مثال، در زیر کدی وجود دارد که دکمه پیش فرض OK را با یک نماد مهم نشان می دهد.

()Sub MsgBoxCriticalIcon
MsgBox "This is a sample box", vbCritical
End Sub
نمایش آیکن در پیام تابع MsgBox اکسل

مثال دیگری از این کد به صورت زیر میباشد:

()Sub MsgBoxCriticalIcon
MsgBox "This is a sample box", vbYesNo + vbCritical
End Sub

نمایش آیکن در پیام تابع MsgBox اکسل

تخصیص مقدار MsgBox به یک متغیر

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

با تابع MsgBox در اکسل، می توانید تصمیم بگیرید که وقتی کاربر روی دکمه خاصی کلیک می کند، چه کاری انجام دهید و این امکان پذیر است زیرا هر دکمه دارای یک مقدار مرتبط با آن است.

بنابراین اگر روی دکمه Yes کلیک کنم، تابع MsgBox یک مقدار (6 یا vbYes ثابت) را برمی‌گرداند که می‌توانم از آن در کد خود استفاده کنم. به طور مشابه، اگر کاربر دکمه No را انتخاب کند، مقدار متفاوتی ((7 یا vbNo ثابت)) را برمی گرداند که می توانم در کد استفاده کنم.

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

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

در کد زیر، اگر کاربر Yes را کلیک کند، پیغام «شما کلیک کردید بله» را نشان می دهد و اگر کاربر روی «نه» کلیک کند، «شما روی خیر کلیک کردید» نمایش داده می شود.

()Sub MsgBoxInformationIcon
Result = MsgBox("Do you want to continue?", vbYesNo + vbQuestion)
If Result = vbYes Then
"MsgBox "You clicked Yes
"Else: MsgBox "You clicked No
End If
End Sub
تخصیص مقدار MsgBox به یک متغیر

سوالات متداولتابع msgbox در اکسل چیست؟

برای آن که بتوانید با استفاده از vba با کاربران تعامل برقرار کنید و اطلاعات خاصی را در قالب پیام به آن ها نمایش دهید از این تابع میتوانید در اکسل استفاده کنید. در این پیام ها میتوانید آیکن خاصی را استفاده نماییدنحوه استفاده از تایع msgbox در اکسل چگونه است؟

ساختار این تابع به صورت msgbox(prompt, [buttons], [title], [helpfile], [vontext]) میباشد که در مقاله توضیح داده شده که هر بخش از پیام و آیکن ها و گزینه های نمایش داده شده برای انتخاب در کدام قسمت باید تعریف شوند.

دیدگاه شما

نشانی ایمیل شما منتشر نخواهد شد.