ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
59 visibility
موضوع: آفیس توسط:

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

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

sPrompt = "1. This is your first choice" & vbCrLf
sPrompt = sPrompt & "2. This is your second choice" & vbCrLf
sPrompt = sPrompt & "3. This is your third choice" & vbCrLf
sPrompt = sPrompt & "4. This is your fourth choice" & vbCrLf
sPrompt = sPrompt & "5. This is your fifth choice"

اکنون می توانید هنگام فراخوانی تابع InputBox در ماکرو از رشته sPrompt استفاده کنید. سپس آنچه کاربر با آن پاسخ می‌دهد را به عددی ترجمه می‌کنید که نشان‌دهنده انتخاب او از بین پنج گزینه شما است. کد انجام این کار به صورت زیر است:

sUserResp = InputBox(sPrompt, "The Big Question")
iUR = Val(sUserResp)

در این مثال، پاسخ تابع InputBox به متغیر sUserResp که باید یک رشته باشد، اختصاص داده شده است. سپس متغیر iUR که یک متغیر عددی (عدد صحیح) است، بر اساس مقدار رشته تنظیم می‌شود. (تابع Val مقدار را در یک رشته برمی گرداند.)

تنها کاری که باید انجام دهید این است که بر اساس عددی که از 1 تا 5 انتخاب شده است اقدام کنید. برای این کار می توانید از ساختار Select Case استفاده کنید. زیربرنامه کامل می تواند به صورت زیر در VBA ظاهر شود:

Sub TestInput()
    Dim sPrompt As String
    Dim sUserResp As String
    Dim iUR As Integer

    sPrompt = "1. This is your first choice" & vbCrLf
    sPrompt = sPrompt & "2. This is your second choice" & vbCrLf
    sPrompt = sPrompt & "3. This is your third choice" & vbCrLf
    sPrompt = sPrompt & "4. This is your fourth choice" & vbCrLf
    sPrompt = sPrompt & "5. This is your fifth choice"
    iUR = 0
    While iUR < 1 Or iUR > 5
        sUserResp = InputBox(sPrompt, "The Big Question")
        iUR = Val(sUserResp)
    Wend
    Select Case iUR
        Case 1
            "Do stuff for choice 1 here
        Case 2
            "Do stuff for choice 2 here
        Case 3
            "Do stuff for choice 3 here
        Case 4
            "Do stuff for choice 4 here
        Case 5
            "Do stuff for choice 5 here
    End Select
End Sub

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

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

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

0 پاسخ وجود دارد

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 49 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 139 visibility
ارسال شده در 1 دی 1401 موضوع: عمومی توسط: بی نام
0 دوستدار 0 امتیاز منفی
0 پاسخ 152 visibility
ارسال شده در 29 آذر 1401 موضوع: شبکه های کامپیوتری توسط: بی نام
0 دوستدار 0 امتیاز منفی
1 پاسخ 84 visibility
0 دوستدار 0 امتیاز منفی
1 پاسخ 87 visibility

31.4k سوال

16.7k پاسخ

620 دیدگاه

13.9k کاربر

27 نفر آنلاین
0 عضو و 27 مهمان در سایت حاضرند
بازدید امروز: 17427
بازدید دیروز: 60388
بازدید کل: 34406253
...