Otomatis Login/Signin ke gmail.com dari vba Excel

Kita akan mencoba membuat aplikasi di VBA yang akan membuat kita otomatis login/signin ke gmail.com. Untuk itu diperlukan 2 reference di proyek vba kita yaitu :

  • Microsoft Internet Control
  • Microsoft HTML Object Library

Caranya :

  1. Kita buat new workbook
  2. Masuk ke VBA Editor dengan shortcut ALT+F11 (atau cara lain terserah anda)
  3. Pilih workbook baru anda di Project Explorer lalu klik kanan, pilih  Insert Module
  4. Masukkan 2 reference diatas, caranya pastikan project kita yang sedang aktif (klik aja module baru diatas, untuk memastikan juga bisa diliat title dari jendela VBA Editor)
  5. Klik Menu Tools - Reference
  6.  webbrowser01
  7. pilih 2 references diatas
  8. webbrowser02
  9. nah VBA kita sudah siap untuk Login ke Internet

Sebelum bisa login ke gmail.com maka kita perlu pelajari HTML dari halaman login gmail

Kita buka pake Chrome karena ini adalah cara termudah memahami HTML

  1. Buka Chrome
  2. pergi ke halaman login gmail.com
  3. kalo sudah login kita logout dulu
  4. ini hasilnya
  5.  webbrowser03
  6. webbrowser03b
  7. Kalau tampilan sudah seperti dibawah ibni, klik kanan pada textbox email , lalu pilih Inspect Elements
  8. webbrowser04
  9. Kita pelajari HTML berikut
  10. webbrowser05
  11. ada 3 element yang penting, yaitu : textbox email memiliki nama "Email", textbox password punya nama "Passwd" dan tombol SignIn dengan nama "SignIn", kita ingat2 nama ke 3 elemen tersebut
  12. Kita masuk ke VBA Editor pada proyek kita tadi, kita ketik pada module
  13. Dim HTMLDoc As HTMLDocument
    'buat variable object sebagai browser
    Dim MyBrowser As InternetExplorer
    Sub MyGmail()
    
        'buat variable untuk menampung HTML dari halaman login gmail
        Dim MyHTML_Element As IHTMLElement
    
        'variabel alamat gmail
        Dim MyURL As String
    
        'bikin trap error
        On Error GoTo Err_Clear
        MyURL = "https://www.gmail.com"
        Set MyBrowser = New InternetExplorer
        MyBrowser.Silent = True
    
        'menuju ke gmail.com
        MyBrowser.Navigate MyURL
    
        'tampilkan ie
        MyBrowser.Visible = True
    
        'tungguin sampai selesai
        Do
        Loop Until MyBrowser.ReadyState = READYSTATE_COMPLETE
    
        'ambil semua elemen HTML dari halaman login gmail
        Set HTMLDoc = MyBrowser.Document
    
        'isi dengan nama dan password
        HTMLDoc.all.Email.Value = "puji.bayuaji@gmail.com"    'Enter email anda disini
        HTMLDoc.all.passwd.Value = "**********"    'Enter password disini
    
        'klik sign in
        HTMLDoc.all.Signin.Click
    
    Err_Clear:
        If Err <> 0 Then
            Err.Clear
            Resume Next
        End If
    End Sub

     
  14. Kita coba, dan seharusnya sukses
  15. Namun ada masalah lagi, gimana jika kita sudah login namun dengan nama lain, account lain, code ini akan gagal
  16. Maka kita harus logout dulu dari gmail agar code ini berhasil
  17. Kita cari tahu bagaimana untuk logout
  18. kita lihat gambar dibawah
  19. webbrowser06
  20. Penjelasannya
  21. Kita cari tombol sign out
  22. Kita klik kanan lalu pilih Inspect Element
  23. Ketahuan kode HTML yang berhubungan dengan tombol tersebut
  24. cari alamat page jika mau logout
  25. lalu kita klik kanan pada kode tersebut lalu pilih copy Link address
  26. lalu kita kembali ke VBA Editor dan coba kita tambahin agar code berusaha logout dulu dari account sebelumnya sebelum login dengan account baru
  27. ini codenya
  28. Dim HTMLDoc As HTMLDocument
    'buat variable object sebagai browser
    Dim MyBrowser As InternetExplorer
    Sub MyGmail()
    
        'buat variable untuk menampung HTML dari halaman login gmail
        Dim MyHTML_Element As IHTMLElement
    
        'variabel alamat gmail
        Dim MyURL As String
    
        'bikin trap error
        On Error GoTo Err_Clear
        MyURL = "https://www.gmail.com"
        Set MyBrowser = New InternetExplorer
        MyBrowser.Silent = True
    
        '*****************************************************************
        'tambahan code agar 
        'logout dulu
         MyBrowser.Navigate "https://mail.google.com/mail/u/0/?logout&hl=en&hlor"
        Do
        Loop Until MyBrowser.ReadyState = READYSTATE_COMPLETE
        '*****************************************************************
    
        MyBrowser.Navigate MyURL
        MyBrowser.Visible = True
        Do
        Loop Until MyBrowser.ReadyState = READYSTATE_COMPLETE
    
        Set HTMLDoc = MyBrowser.Document
        HTMLDoc.all.Email.Value = "puji.bayuaji@gmail.com"    'Enter your email id here
        HTMLDoc.all.passwd.Value = "******"    'Enter your password here
    
        'klik sign in
        HTMLDoc.all.Signin.Click
    Err_Clear:
        If Err <> 0 Then
            Err.Clear
            Resume Next
        End If
    End Sub

     
  29. Sekarang walopun sudah ada yang login di gmail, code ini tetep bisa dipakai
Bookmark the permalink.

3 Responses to Otomatis Login/Signin ke gmail.com dari vba Excel

  1. badjoeadjie says:

    Bisa diterapkan misalnya membuka portal djp atau SIDJP dengan cepat

  2. EKO says:

    untuk buka data MFWP di apportal bagaimana ya pak????

Leave a Reply

Your email address will not be published.