Terima kasih Pak Aksan, suatu pengalaman baru bagi saya pemula ini dalam 
membaca listing vba bapak. Saya sendiri coba2 tuk buat kalkulator, tapi tidak 
kelar2 :D

Buat teman2 milis, saya coba susun kembali proses pembuatan kalkulator ini. 
Jika ada yang salah mohon dikoreksi.

Pembangunan form :
1. Buat form seperti yang ada dicontoh, untuk nama setiap kontrol (tombol, 
label) bebas diberi nama apa saja.
2. Buat event yang dapat menangkap tombol apa saja yang ditekan. Khusus 
kalkulator, maka karakter yang dipakai hanya angka (1 s/d 9); simbol operator 
(+,-,*,/);  tanda titik (.) dan reset atas penghitungan terakhir.

Private Sub Form_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
        Case 48 To 57: Call Angka(KeyAscii - 48)
        Case 43: Call Calculate("+")
        Case 45: Call Calculate("-")
        Case 42: Call Calculate("*")
        Case 47: Call Calculate("/")
        Case 46: Call Period
        Case 27: Call ClearDisplay
    End Select
End Sub

Prosedur Call Angka() adalah proses penangkapan angka.
Prosedur Call Calculate() adalah proses penghitungan/ambil hasil
Prosedur Call Period() adalah proses pemberian angka desimal
Prosedur Call ClearDisplay adalah proses reset kalkulator.

Semua prosedur diatas pada akhirnya ditampilkan ke textbox.

3. Set Key Preview= Yes

4. Buat VBA untuk Call Angka, Calculate, Period dan Reset atau ClearDisplay.

5. Set event disetiap command/tombol
- Pada tombol dengan angka..... pada misalkan tombol angka 0 maka pada 
properties event OnClick tsb diisi =Angka(0) dst s/d tombol angka 9
- Pada Tombol Operator + pada properties event OnClick diisikan 
=Calculate("+"), dan dilanjutkan pada tombol operator yang lain.
- Pada Tombol +/- pada properties event OnClick diisikan =Flag()

6. Selesai

Sedikit analisa VBA:

Setting awal yang berlaku global
Dim strOperan1 As String
Dim strOperan2 As String
Dim strOperator As String
Dim dblResult As Double
Dim bolFinalResult As Boolean

Proses Kalkulator adalah proses penghitungan nilai X terhadap nilai Y dimana 
nilai akhirnya ditentukan oleh operasi aritmatika mana yang akan digunakan.

strOperan1 dan strOperan2 adalah nilai X dan nilai Y
strOperator adalah proses arimatikanya

Mengapa menggunakan type data String bukan Integer atau Double dalam penentuan 
type data?
Karena analisa untuk proses perhitungan yang digunakan adalah menggunakan 
Eval().

    contoh: Eval("1 + 1") hasilnya 2, silahkan ditest di immediate window 
?Eval("1 + 1")

Lanjut, dblResult adalah hasil akhirnya. sedangkan bolFinalResult digunakan 
untuk menandai proses penghitungan akhir menggunakan prosedur Calculate("=").

Ini dulu deh.

salam,
Roland

NB: kalkulator ini tidak bisa menyisipkan angka, dan reset 1 angka dibelakang.

Kirim email ke