Blogger Widgets

Rabu, 16 November 2016

Excel & Word Automation Visual Basic

Penjelasan Program

  Program ini merupakan program yang bisa membantu para pengajar yang memiliki kewajiban untuk meng-input nilai dari siswa yang diajarnya, dan memudahkan pengajar untuk membuat data laporan nilai siswa dan membuat surat pemberitahuan kelulusan siswa. Program ini menggunakan koding Excel dan Word Automation untuk meng-otomasi program Visual Basic ke Ms. Excel & Ms.Word.

Berikut adalah cara penggunaan aplikasi :
  • ·        Pada saat program dijalankan, yang pertama kali keluar adalah form pengisian data siswa. Pengajar dapat mengisikan nama siswa,nomor siswa dan nilai siswa.
  • ·        Setelah data selesai diisi, pengajar harus menekan tombol hitung data untuk memproses nilai siswa.
  • ·        Di bagian paling bawah form, terdapat tombol “Baru”, “Surat Pemberitahuan”,”Lihat Data”,dan “Selesai”. Berikut penjelasan untuk tombol        :

Ø  Tombol “Baru” = Tombol ini berfungsi untuk membersihkan data yang tadi diisikan                                  dan membuat form siap diisi data baru.
   
Ø  Tombol “Surat Pemberitahuan” = Tombol ini berfungsi untuk membuat visual basic
   terhubung dengan Ms.Word untuk surat
   pemberitahuan kelulusan.
Ø  Tombol “Lihat Data” = Tombol ini berfungsi untuk membuat program yang ada di                                              visual basic terhubung dengan Ms.Excel untuk membantu 
                                                             membuat laporan data nilai siswa.
Ø  Tombol “ Selesai” = Tombol ini berfungsi jika pengajar sudah menyelesaikan tugasnya
        untuk meng-input nilai siswa.


 Dalam program ini saya tidak hanya menggunkan prgram Visual Basic sebagai mesin penghitung, tetapi juga memanfaatkan aplikasi Ms.Excel untuk menghitung akumulasi nilai siswa. Dengan menambahkan rumus pada sel-sel tertentu. Source Code dibawah, memungkinkan user untuk memasukan data siswa yang jumlahnya banyak.



Screen Shoot Hasil Running Program






                                               NB : Terdapat garis merah sebagai bookmark surat
Source Code

Imports Excel = Microsoft.Office.Interop.Excel
Imports Word = Microsoft.Office.Interop.Word
Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim myExcelApp As New Excel.Application
        Dim myExcelBook As Excel.Workbook
        Dim row As Long
        Dim myExcelSheet As Excel.Worksheet

        myExcelApp.Visible = True
        myExcelBook = myExcelApp.Workbooks.Open("F:\ExcelWordAutomation\Book1.xlsx")
        myExcelSheet = myExcelBook.Sheets("Sheet1")
        row = myExcelSheet.Range("A" & myExcelSheet.Rows.Count).End(Excel.XlDirection.xlUp).Row

        myExcelApp.Range("A1").Value = "No."
        myExcelApp.Range("B1").Value = "Nama Mahasiswa"
        myExcelApp.Range("C1").Value = "NPM"
        myExcelApp.Range("D1").Value = "Jenis Kelamin"
        myExcelApp.Range("E1").Value = "Statistik"
        myExcelApp.Range("F1").Value = "Diskrit"
        myExcelApp.Range("G1").Value = "Matek"
        myExcelApp.Range("H1").Value = "Ekonomi"
        myExcelApp.Range("I1").Value = "Akuntansi"
        myExcelApp.Range("J1").Value = "Nilai Rata-Rata"
        myExcelApp.Range("K1").Value = "Grade"
        myExcelApp.Range("L1").Value = "Keterangan"

        myExcelApp.Range("A" & row + 1).Value = CStr(row)
        myExcelApp.Range("B" & row + 1).Value = txtNama.Text
        myExcelApp.Range("C" & row + 1).Value = txtNPM.Text
        myExcelApp.Range("D" & row + 1).Value = lblJK.Text
        myExcelApp.Range("E" & row + 1).Value = txtSta.Text
        myExcelApp.Range("F" & row + 1).Value = txtDis.Text
        myExcelApp.Range("G" & row + 1).Value = txtMat.Text
        myExcelApp.Range("H" & row + 1).Value = txtEko.Text
        myExcelApp.Range("I" & row + 1).Value = txtAkn.Text

        Me.txtNama.Text = ""
        Me.txtNPM.Text = ""
        Me.lblJK.Text = ""
        Me.txtSta.Text = ""
        Me.txtDis.Text = ""
        Me.txtMat.Text = ""
        Me.txtEko.Text = ""
        Me.txtAkn.Text = ""

        myExcelBook.SaveAs("F:\ExcelWordAutomation\Book1.xlsx")
        myExcelApp.Quit()
    End Sub

    Private Sub btnBaru_Click(sender As Object, e As EventArgs) Handles btnBaru.Click
        txtAkn.Text = ""
        txtDis.Text = ""
        txtEko.Text = ""
        txtMat.Text = ""
        txtNama.Text = ""
        txtNPM.Text = ""
        txtSta.Text = ""
        txtNama.Focus()
    End Sub

    Private Sub btnSelesai_Click(sender As Object, e As EventArgs) Handles btnSelesai.Click
        Me.Close()
    End Sub

    Private Sub rbtLaki_CheckedChanged(sender As Object, e As EventArgs) Handles rbtLaki.CheckedChanged
        lblJK.Text = rbtLaki.Text
    End Sub

    Private Sub rbtPer_CheckedChanged(sender As Object, e As EventArgs) Handles rbtPer.CheckedChanged
        lblJK.Text = rbtPer.Text
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub

    Private Sub btnWord_Click(sender As Object, e As EventArgs) Handles btnWord.Click
        Dim myWordApp As New Word.Application
        Dim myWordDoc As New Word.Document

        myWordApp.Visible = True
        myWordDoc = myWordApp.Documents.Open("F:\ExcelWordAutomation\Word1.docx")

        myWordDoc.Bookmarks("Nama1").Select()
        myWordApp.Selection.Font.Name = "Times New Roman"
        myWordApp.Selection.Font.Size = 12
        myWordApp.Selection.TypeText(txtNama.Text)

        myWordDoc.Bookmarks("Nama2").Select()
        myWordApp.Selection.Font.Name = "Times New Roman"
        myWordApp.Selection.Font.Size = 12
        myWordApp.Selection.TypeText(txtNama.Text)

        myWordDoc.Bookmarks("NPM").Select()
        myWordApp.Selection.Font.Name = "Times New Roman"
        myWordApp.Selection.Font.Size = 12
        myWordApp.Selection.TypeText(txtNPM.Text)

        myWordDoc.Bookmarks("Ket").Select()
        myWordApp.Selection.Font.Name = "Bradley Hand ITC"
        myWordApp.Selection.Font.Size = 16
        myWordApp.Selection.Font.Bold = 1
        myWordApp.Selection.TypeText(lblKet.Text)

        myWordDoc.Bookmarks("Pred").Select()
        myWordApp.Selection.Font.Name = "Times New Roman"
        myWordApp.Selection.Font.Size = 12
        myWordApp.Selection.Font.Bold = 1
        myWordApp.Selection.TypeText(lblPred.Text)

        myWordDoc.Bookmarks("Pred2").Select()
        myWordApp.Selection.Font.Name = "Times New Roman"
        myWordApp.Selection.Font.Size = 12
        myWordApp.Selection.Font.Bold = 1
        myWordApp.Selection.TypeText(lblPred2.Text)

        myWordDoc.SaveAs("F:\ExcelWordAutomation\Word1.docx")
        myWordApp.Quit()

    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        lblRata.Text = (Val(txtAkn.Text) + Val(txtDis.Text) + Val(txtEko.Text) + Val(txtMat.Text) + Val(txtSta.Text)) / 5

        If (lblRata.Text >= 85) Then
            lblPred.Text = "A"
        ElseIf (lblRata.Text >= 75) Then
            lblPred.Text = "B"
        ElseIf lblRata.Text >= 60 Then
            lblPred.Text = "C"
        ElseIf lblRata.Text >= 55 Then
            lblPred.Text = "D"
        Else : lblPred.Text = "E"
        End If

        If (lblPred.Text = "A") Then
            lblKet.Text = "Lulus"
        ElseIf (lblPred.Text = "B") Then
            lblKet.Text = "Lulus"
        ElseIf (lblPred.Text = "C") Then
            lblKet.Text = "Lulus Bersyarat"
        Else : lblKet.Text = "Tidak Lulus"
        End If

        If (lblPred.Text = "A") Then
            lblPred2.Text = "Sangat Baik"
        ElseIf (lblPred.Text = "B") Then
            lblPred2.Text = "Baik"
        ElseIf (lblPred.Text = "C") Then
            lblPred2.Text = "Cukup"
        ElseIf (lblPred.Text = "D") Then
            lblPred2.Text = "Kurang"
        Else : lblPred2.Text = "Sangat Kurang"
        End If
    End Sub
End Class