ক্যালকুলেটর তৈরী করুন এক্সেল ভিবিএ ইউজারফর্মে - Create a calculator in Excel VBA UserForms

এক্সেল ভিবিএ ইউজারফর্ম-ক্যালকুলেটর


এক্সেল ভিবিএ  ইউজারফর্ম: ক্যালকুলেটর প্রজেক্ট অব্জেক্টিব

Excel VBA UserForm ব্যবহার করে ক্যালকুলেটর। VBA ব্যবহার করে এই প্রকল্পটি স্বয়ংক্রিয় করার জন্য ধাপে ধাপে বিস্তারিত ব্যাখ্যা দেওয়া হল। আমরা কিভাবে হিসাব করছি, টেক্সট ক্লিয়ার করি ইত্যাদি।


কিভাবে আমরা এই প্রকল্প মডিউল (মূল পদক্ষেপ) ডেভেলপ করতে যাচ্ছি: ডেভেলপ প্রজেক্ট 


ক্যালকুলেটর তৈরি করতে, এখানে ব্যবহার করা UserForm ইউজারফর্ম ডিজাইনটি আপনি দেখতে পারেন। চলুন এই ক্যাকুলেটর প্রিজেক্টটির মূল পদক্ষেপগুলি ব্যাখ্যা করি। আমরা নীচের পদ্ধতির সাথে একাধিক নিয়ন্ত্রণের জন্য একাধিক পদ্ধতি লিখতে যাচ্ছি।


  • ধাপ 1: ইউজারফর্ম তৈরি করুন: আমাদের প্রথমে ভিবিএ এডিটরের ইনসার্ট মেনু থেকে ইউজারফর্ম তৈরি করতে হবে।
  • ধাপ 2: তৈরি ইউজারফর্মে টুলবক্স নিয়ন্ত্রণ রাখুন: ইউজারফর্মে প্রয়োজনীয় কন্ট্রোলস রাখুন। আপনি ড্র্যাগ করে টুলবক্স থেকে কন্ট্রোলস ফ্রম  এবং ইউজারফর্মে  ড্রপ কন্ট্রোলস করতে পারেন।
  • ধাপ 3: সুম্পূর্ণ কন্ট্রোলস করতে  প্রোপারটিস এবং এলাইনমেন্ট সেট করুন: প্রোপারটিসের  সব কন্ট্রোল সেট করা আছে। এটি ডিজাইন বিভাগে দেখানো হয়েছে।
  • ধাপ 4: ক্লিয়ার বাটন : এটি প্রদর্শন এএরিয়া  ক্লিয়ার করতে ব্যবহৃত হয়।
  • ধাপ 5: ব্যাক বাটন: এটি পুর্বের ডিজিটে ফিরে যেতে ব্যবহৃত হয়।
  • ধাপ 6: বিভাজন (/) বাটন: এটি বিভাজনের জন্য ব্যবহৃত হয়।
  • ধাপ 7: গুণ (*) বাটন: এটি গুণের জন্য ব্যবহৃত হয়।
  • ধাপ 8: বিয়োগ (-) বাটন: এটি বিয়োগের জন্য ব্যবহৃত হয়।
  • ধাপ 9: (+) বাটন অ্যাড করুন: এটি যোগ এর জন্য ব্যবহৃত হয়।
  • ধাপ 10: ডট (.) বাটন: এটি সংখ্যায় ডট যোগ করতে ব্যবহৃত হয়।
  • ধাপ 11: এক (1) বাটন: এটি 1 নম্বর প্রদর্শন করতে ব্যবহৃত হয়।
  • ধাপ 12: দুই (2) বাটন: এটি 2 নম্বর প্রদর্শন করতে ব্যবহৃত হয়।
  • ধাপ 13: তিনটি (3) বাটন: এটি 3 নম্বর প্রদর্শন করতে ব্যবহৃত হয়।
  • ধাপ 14: চার (4) বাটন: এটি 4 নম্বর প্রদর্শন করতে ব্যবহৃত হয়।
  • ধাপ 15: পাঁচ (5) বাটন: এটি 5 নম্বর প্রদর্শন করতে ব্যবহৃত হয়।
  • ধাপ 16: ছয় (6) বাটন: এটি 6 নম্বর প্রদর্শন করতে ব্যবহৃত হয়।
  • ধাপ 17: সাত (7) বাটন: এটি 7 নম্বর প্রদর্শন করতে ব্যবহৃত হয়।
  • ধাপ 18: আট (8) বাটন: এটি 8 নম্বর প্রদর্শন করতে ব্যবহৃত হয়।
  • ধাপ 19: নয় (9) বাটন: এটি 9 নম্বর প্রদর্শন করতে ব্যবহৃত হয়।
  • ধাপ 20: শূন্য (0) বাটন: এটি .0 নম্বর প্রদর্শন করতে ব্যবহৃত হয়
  • ধাপ 21: একুয়ালটো EqualTo (=) বোতাম: এটি যোগ, বিয়োগ, গুণ, ইত্যাদির মতো সমস্ত গণনা করতে ব্যবহৃত হয়।
  • ধাপ 22: টেক্সটবক্স: এটি ফলাফল প্রদর্শন করতে ব্যবহৃত হয়।

ক্যালকুলেটর ডিজাইন:
আসুন এখন দেখি এই ক্যালকুলেটর প্রজেক্টের ডিজাইনের প্রতিটি কন্ট্রোল প্রোপারটিস এবং তাদের ভ্যালু অন দি ইউজারফর্ম: 

ControlPropertyValue
UserFormNamefrmCalculator
FrameNamedisplayFrame
TextBoxNametxtDisplay
EnabledFalse
SpecialEffect0-frmSpecialEffectFlat
TextAlign3-frmTextAlignRight
TextBoxNametxtRes
Value0
EnabledFalse
SpecialEffect0-frmSpecialEffectFlat
TextAlign3-frmTextAlignRight
EnterKeyBehaviorTrue
CommandButtonNamecmdBtnclr
CaptionClear
CommandButtonNamecmdBtnBak
CaptionBack
CommandButtonNamecmdBtnDvd
Caption/
CommandButtonNamecmdBtnMult
Caption*
CommandButtonNamecmdBtnMns
Caption
CommandButtonNamecmdBtnAdd
Caption+
CommandButtonNamecmdBtnDot
Caption.
CommandButtonNamecmdBtnEql
Caption=
CommandButtonNamecmdBtn1
Caption1
CommandButtonNamecmdBtn2
Caption2
CommandButtonNamecmdBtn3
Caption3
CommandButtonNamecmdBtn4
Caption4
CommandButtonNamecmdBtn5
Caption5
CommandButtonNamecmdBtn6
Caption6
CommandButtonNamecmdBtn7
Caption7
CommandButtonNamecmdBtn8
Caption8
CommandButtonNamecmdBtn9
Caption9
CommandButtonNamecmdBtn0
Caption0

আমি ক্যালকুলেটর ডিজাইন তৈরি করতে ব্যবহার করেছি। উপরের সমস্ত বৈশিষ্ট্য এবং নিয়ন্ত্রণের মানগুলি পরিবর্তন বা সেট করে ফর্মটি নীচের মতো দেখাবে।

প্রতিটি কন্ট্রোলের জন্য কোড এবং ব্যাখ্যা:

ধাপ 1: ইউজারফর্ম তৈরি করুন এবং ইউজারফর্মে ডাবল ক্লিক করে এর সূচনা করুন এবং নীচের কোডটি যুক্ত করুন।

Private Sub UserForm_Initialize()
    txtRes.MaxLength = 10
    txtDisplay.MaxLength = 10
End Sub
উপরের কোডে আমরা সেটিং সর্বাধিক  দৈর্ঘ্য (Length )  নির্ধারণ করছি প্রদর্শন সংখ্যা 10, আপনি এই সংখ্যাটি পরিবর্তন করতে পারেন।

ধাপ 2: টেক্সটবক্সে ডাবল ক্লিক করুন (Value- txtRes) এবং নিম্নলিখিত কোড যোগ করুন। 'টেক্সটবক্স' এ ডাবল ক্লিক করুন এবং নিচের কোডটি যোগ করুন।

Private Sub txtRes_Change()
     If txtRes.TextLength > 10 Then
        MsgBox "Its Too long to calculate value.", vbInformation
        txtRes.Text = Left(txtRes.Text, 10)
        Exit Sub
    End If
End Sub
উপরের কোডে মেসেজ প্রদর্শন করবে যখন সংখ্যা 10 ছাড়িয়ে যাবে।

ধাপ 3: উপরে উল্লিখিত বৈশিষ্ট্যগুলি সেট করুন এবং স্ক্রিনশটে উপরে দেখানো হিসাবে সমস্ত নিয়ন্ত্রণের সারিবদ্ধকরণ করুন।

ধাপ 4: 'ক্লিয়ার বাটন' এ ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।

Private Sub cmdBtnclr_Click()
    txtRes = 0: txtDisplay = Empty
End Sub

পদক্ষেপ 5: 'ব্যাক বাটন' এ ডাবল ক্লিক করুন এবং নীচের কোডটি যুক্ত করুন।

Private Sub cmdBtnBak_Click()
    If txtRes <> 0 And txtRes <> "" Then txtRes = Left(txtRes, Len(txtRes) - 1)
End Sub

ধাপ 6: 'ডিভাইড (/) বাটনে' ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।

Private Sub cmdBtnDvd_Click()
    If txtRes <> 0 Then
        txtDisplay = txtRes
        txtRes = 0
        calVal = "Divide"
    End If
End Sub
ধাপ 7: 'গুণ (*) বাটনে ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।

Private Sub cmdBtnMult_Click()
    If txtRes <> 0 Then
        txtDisplay = txtRes
        txtRes = 0
        calVal = "Multiplication"
    End If
End Sub

ধাপ ৮: 'বিয়োগ (-) বাটনে' ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।

Private Sub cmdBtnMns_Click()
    If txtRes <> 0 Then
        txtDisplay = txtRes
        txtRes = 0
        calVal = "Minus"
    End If
End Sub
ধাপ ৯: 'যোগ (+) বাটনে' ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।

Private Sub cmdBtnAdd_Click()
    If txtRes <> 0 Then
        txtDisplay = txtRes
        txtRes = 0
        calVal = "Add"
    End If
End Sub
ধাপ ১০: 'ডট (.) বাটনে' ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।

Private Sub cmdBtnDot_Click()
    If txtRes <> 0 Then txtRes = txtRes + "."
End Sub
ধাপ 11: 'এক (1) বাটনে' ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।

Private Sub cmdBtn1_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn1.Caption
    Else
        txtRes = txtRes + cmdBtn1.Caption
    End If
End Sub

ধাপ 12: 'দুই (2) বাটনে' ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।


Private Sub cmdBtn2_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn2.Caption
    Else
        txtRes = txtRes + cmdBtn2.Caption
    End If
End Sub
ধাপ 13: 'তিন (3) বাটনে' ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।

Private Sub cmdBtn3_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn3.Caption
    Else
        txtRes = txtRes + cmdBtn3.Caption
    End If
End Sub
ধাপ 14: 'চার (4) বাটনে' ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।


Private Sub cmdBtn4_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn4.Caption
    Else
        txtRes = txtRes + cmdBtn4.Caption
    End If
End Sub

ধাপ 15: 'পাঁচ (5) বাটনে' ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।


Private Sub cmdBtn5_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn5.Caption
    Else
        txtRes = txtRes + cmdBtn5.Caption
    End If
End Sub
ধাপ 16: 'ছয় (6) বাটনে' ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।
Private Sub cmdBtn6_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn6.Caption
    Else
        txtRes = txtRes + cmdBtn6.Caption
    End If
End Sub
ধাপ 17: 'সাত (7) বাটনে' ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।
Private Sub cmdBtn7_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn7.Caption
    Else
        txtRes = txtRes + cmdBtn7.Caption
    End If
End Sub
ধাপ 18: 'আট (8) বাটনে' ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।

Private Sub cmdBtn8_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn8.Caption
    Else
        txtRes = txtRes + cmdBtn8.Caption
    End If
End Sub
ধাপ 19: 'নয় (9) বাটনে' ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।

Private Sub cmdBtn9_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn9.Caption
    Else
        txtRes = txtRes + cmdBtn9.Caption
    End If
End Sub
ধাপ 20: ' শূন্য (0) বাটনে' ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।

Private Sub cmdBtn0_Click()
    txtRes = txtRes + cmdBtn0.Caption
End Sub
ধাপ 21: ' EqualTo (=) বাটনে' ডাবল ক্লিক করুন এবং নীচের কোডটি যোগ করুন।

'21. Final Calculations
Private Sub cmdBtnEql_Click()
On Error GoTo ErrOcccered
    'Dim txtRes As Long
    
    If txtDisplay = "Cannot divide by Zero" Then txtDisplay = Empty
    
    If txtRes <> "" And calVal <> "" Then
        FNum = Val(txtDisplay): SNum = Val(txtRes)
        Select Case calVal
            Case "Add"
                txtRes = FNum + SNum
            Case "Minus"
                txtRes = FNum - SNum
            Case "Multiplication"
                txtRes = FNum * SNum
            Case "Divide"
                If SNum = 0 Then
                    txtRes = "Cannot divide by Zero"
                Else
                    txtRes = FNum / SNum
                End If
            Case Else
                
        End Select
        txtdisplay = Empty
    End If
ErrOcccered:

End Sub
চূড়ান্ত VBA মডিউল কোড (ম্যাক্রো):

প্রজেক্ট তৈরির জন্য অনুগ্রহ করে নিম্নলিখিত পদ্ধতিগুলি সন্ধান করুন। দয়া করে ডিজাইন তৈরির পরে এই পদ্ধতিগুলি (উপরে দেখানো হয়েছে) এবং ইউজারফর্ম নির্বাচন করে রাইট ক্লিক করে কোড লিখুন।


‘Variable Declaration
Public tmpVar As String
Public calVal As String

'1. Assign Maximum length to diplay numbers
Private Sub UserForm_Initialize()
    txtRes.MaxLength = 10
    txtTo display.MaxLength = 10
End Sub

'2. To displaying message when exceeding more then 10 numbers on the To display area.
Private Sub txtRes_Change()
     If txtRes.TextLength > 10 Then
        MsgBox "Its Too long to calculate value.", vbInformation
        txtRes.Text = Left(txtRes.Text, 10)
        Exit Sub
    End If
End Sub

'3. Settings properties of the userform.

'4. To clear data in the To display field
Private Sub cmdBtnclr_Click()
    txtRes = 0: txtdisplay = Empty
End Sub

'5. To go back one step.
Private Sub cmdBtnBak_Click()
    If txtRes <> 0 And txtRes <> "" Then txtRes = Left(txtRes, Len(txtRes) - 1)
End Sub

'6. For divide symbol
Private Sub cmdBtnDvd_Click()
    If txtRes <> 0 Then
        txtdisplay = txtRes
        txtRes = 0
        calVal = "Divide"
    End If
End Sub

' 7. For multiplication symbol
Private Sub cmdBtnMult_Click()
    If txtRes <> 0 Then
        txtdisplay = txtRes
        txtRes = 0
        calVal = "Multiplication"
    End If
End Sub

'8. For minus symbol
Private Sub cmdBtnMns_Click()
    If txtRes <> 0 Then
        txtdisplay = txtRes
        txtRes = 0
        calVal = "Minus"
    End If
End Sub

'9. For addition symbol
Private Sub cmdBtnAdd_Click()
    If txtRes <> 0 Then
        txtdisplay = txtRes
        txtRes = 0
        calVal = "Add"
    End If
End Sub

'10. Add Dot to the To display area
Private Sub cmdBtnDot_Click()
    If txtRes <> 0 Then txtRes = txtRes + "."
End Sub

'11. To display Number 1.
Private Sub cmdBtn1_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn1.Caption
    Else
        txtRes = txtRes + cmdBtn1.Caption
    End If
End Sub

'12. To display Number 2.
Private Sub cmdBtn2_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn2.Caption
    Else
        txtRes = txtRes + cmdBtn2.Caption
    End If
End Sub

'13. To display Number 3.
Private Sub cmdBtn3_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn3.Caption
    Else
        txtRes = txtRes + cmdBtn3.Caption
    End If
End Sub

'14. To display Number 4.
Private Sub cmdBtn4_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn4.Caption
    Else
        txtRes = txtRes + cmdBtn4.Caption
    End If
End Sub

'15. To display Number 5.
Private Sub cmdBtn5_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn5.Caption
    Else
        txtRes = txtRes + cmdBtn5.Caption
    End If
End Sub

'16. To display Number 6.
Private Sub cmdBtn6_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn6.Caption
    Else
        txtRes = txtRes + cmdBtn6.Caption
    End If
End Sub
'17. To display Number 7.
Private Sub cmdBtn7_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn7.Caption
    Else
        txtRes = txtRes + cmdBtn7.Caption
    End If
End Sub

'18. To display Number 8.
Private Sub cmdBtn8_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn8.Caption
    Else
        txtRes = txtRes + cmdBtn8.Caption
    End If
End Sub
'19. To display Number 9.
Private Sub cmdBtn9_Click()
    If txtRes = 0 Then
        txtRes = cmdBtn9.Caption
    Else
        txtRes = txtRes + cmdBtn9.Caption
    End If
End Sub

'20. To display Number 0.
Private Sub cmdBtn0_Click()
    txtRes = txtRes + cmdBtn0.Caption
End Sub

'21. Final Calculations
Private Sub cmdBtnEql_Click()
On Error GoTo ErrOcccered
    'Dim txtRes As Long
    
    If txtDisplay = "Cannot divide by Zero" Then txtDisplay = Empty
    
    If txtRes <> "" And calVal <> "" Then
        FNum = Val(txtDisplay): SNum = Val(txtRes)
        Select Case calVal
            Case "Add"
                txtRes = FNum + SNum
            Case "Minus"
                txtRes = FNum - SNum
            Case "Multiplication"
                txtRes = FNum * SNum
            Case "Divide"
                If SNum = 0 Then
                    txtRes = "Cannot divide by Zero"
                Else
                    txtRes = FNum / SNum
                End If
            Case Else
                
        End Select
        txtdisplay = Empty
    End If
ErrOcccered:

End Sub

 


একটি মন্তব্য পোস্ট করুন

0 মন্তব্যসমূহ