Rabu, 16 November 2016

WORD AUTOMATION & EXCEL AUTOMATION (VB.NET)

1. Penjelasan Program Aplikasi

Program yang saya buat ini adalah program untuk meng-automasi VB.NET ke Ms.Word atau Ms.Excel. sebagai contoh, saya membuat form peminjaman buku di perpustakaan. Dimana nanti akan menginput :
  • 1.       No. Transaksi (TextBox)
  • 2.       Tanggal Transaksi (DateTimePicker)
  • 3.       Nama Pelanggan (TextBox)
  • 4.       Jenis Kelamin (RadioButton)
  • 5.       No Telepon (TextBox)
  • 6.       Alamat (TextBox)
  • 7.       Judul Buku (TextBox)
  • 8.       Pengarang (TextBox)
  • 9.       Penerbit buku (TextBox)


Ketika semua data sudah diinputkan, ketika kita meng-klik “Simpan”, maka data akan tersimpan di Ms.Excel. Jika kita ingin mencetak data tersebut, maka kita klik “Cetak Data” dengan begitu data akan meng-automasi dari VB.NET ke Ms.Word dan kita bisa langsung mencetaknya. Jika kita meng-klik “Mulai Baru”, maka data yang sudah kita tulis sebelumnya akan hilang dan kita bisa menulis lagi dari awal (No.Transaksi) tanpa harus menghapus satu-satu. Jika kita meng-klik “Keluar”, maka form tersebut secara otomatis akan tertutup.

2. Screen Shoot


Ini adalah form peminjaman buku yang saya buat :


Contoh data yang akan diinput dari VB.NET ke Ms.Word & Ms.Excel


Data yang sudah kita input diatas, akan muncul seperti ini jika kita mengklik "Simpan", secara automatis dia akan menyimpan data tersebut (yang berwarna kuning) ke Ms.Excel


Jika kita meng-klik "Cetak Data", maka akan muncul data yang telah kita input tadi ke Ms.Word (yang berwarna kuning)


Jika kita meng-klik "Mulai Baru", maka secara otomatis data yang kita input akan hilang dan ita bisa menginput data baru tanpa harus menghapusnya satu persatu


Jika kita meng-klik "Keluar", maka akan muncul form dialog seperti gambar dibawah ini
Jika kita meng-klik "Yes" maka program tersebut akan tertutup, sedangkan kalau kita meng-klik "No" maka program tersebut tidak tertutup sehingga kita masih bisa menginput data lagi.


3. Source Coding

Imports Microsoft.Office.Interop
Imports word = Microsoft.Office.Interop.Word

Public Class Form1
    Dim app As New Excel.Application
    Dim book As Excel.Workbook
    Dim row As Long
    Dim sheet As Excel.Worksheet
    Dim myWordApp As New Word.Application
    Dim myworddoc As New Word.Document

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Buttonsimpan.Click
        book = app.Workbooks.Open("D:\tugas excel P.AG.xlsx")
        sheet = book.Sheets("Sheet1")
        row = sheet.Range("A" & sheet.Rows.Count).End(excel.XlDirection.xlUp).Row


        app.Range("A1").Value = "No."
        app.Range("B1").Value = "Nomor Transaksi"
        app.Range("C1").Value = "Tanggal Transaksi"
        app.Range("D1").Value = "Nama Pelanggan"
        app.Range("E1").Value = "Jenis Kelamin"
        app.Range("F1").Value = "Nomor Telepon"
        app.Range("G1").Value = "Alamat"
        app.Range("H1").Value = "Judul Buku"
        app.Range("I1").Value = "Pengarang"
        app.Range("J1").Value = "Penerbit"

        app.Range("A" & row + 1).Value = CStr(row)
        app.Range("B" & row + 1).Value = TextBoxnotransaksi.Text
        app.Range("C" & row + 1).Value = DateTimePicker1.Text
        app.Range("D" & row + 1).Value = TextBoxnama.Text

        If RadioButton1.Checked Then
            app.Range("E" & row + 1).Value = RadioButton1.Text
        End If
        If RadioButton2.Checked Then
            app.Range("E" & row + 1).Value = RadioButton2.Text
        End If
        app.Range("F" & row + 1).Value = TextBoxtelp.Text
        app.Range("G" & row + 1).Value = TextBoxalamat.Text
        app.Range("H" & row + 1).Value = TextBoxjudul.Text
        app.Range("I" & row + 1).Value = TextBoxpengarang.Text
        app.Range("J" & row + 1).Value = TextBoxpenerbit.Text

        book.Save()
        app.Quit()

    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Buttonkeluar.Click
        Dim a As String
        a = MsgBox("Akan Keluar..?", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Konfirmasi")
        If a = vbYes Then
            Me.Close()
        End If
    End Sub

    Private Sub Buttonmulaibaru_Click(sender As Object, e As EventArgs) Handles Buttonmulaibaru.Click
        Me.TextBoxnotransaksi.Text = ""
        Me.TextBoxnama.Text = ""
        Me.RadioButton1.Checked = False
        Me.RadioButton2.Checked = False
        Me.TextBoxtelp.Text = ""
        Me.TextBoxalamat.Text = ""
        Me.Textboxjudul.Text = ""
        Me.TextBoxpenerbit.Text = ""
        Me.TextBoxpengarang.Text = ""
        Me.TextBoxnotransaksi.Focus()
    End Sub

    Private Sub Buttoncetakdata_Click(sender As Object, e As EventArgs) Handles Buttoncetakdata.Click
        Dim mywordapp As New word.Application
        Dim myworddoc As New word.Document
        myworddoc = mywordapp.Documents.Open("D:\TUGASPEMRO.docx")

        myworddoc.Bookmarks("no").Select()
        myWordApp.Selection.Paragraphs.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft
        myWordApp.Selection.Font.Name = "Franklin Gothic Demi Cond"
        myWordApp.Selection.Font.Size = 16
        myWordApp.Selection.TypeText(TextBoxnotransaksi.Text)

        myworddoc.Bookmarks("tanggal").Select()
        myWordApp.Selection.Paragraphs.Alignment = word.WdParagraphAlignment.wdAlignParagraphLeft
        myWordApp.Selection.Font.Name = "Franklin Gothic Demi Cond"
        myWordApp.Selection.Font.Size = 16
        myWordApp.Selection.TypeText(DateTimePicker1.Text)

        myworddoc.Bookmarks("nama").Select()
        myWordApp.Selection.Paragraphs.Alignment = word.WdParagraphAlignment.wdAlignParagraphLeft
        myWordApp.Selection.Font.Name = "Franklin Gothic Demi Cond"
        myWordApp.Selection.Font.Size = 16
        myWordApp.Selection.TypeText(TextBoxnama.Text)

        myworddoc.Bookmarks("jeniskelamin").Select()
        If RadioButton1.Checked Then
            myWordApp.Selection.TypeText(RadioButton1.Text)
        End If
        If RadioButton2.Checked Then
            myWordApp.Selection.TypeText(RadioButton2.Text)
        End If

        myworddoc.Bookmarks("notelp").Select()
        myWordApp.Selection.Paragraphs.Alignment = word.WdParagraphAlignment.wdAlignParagraphLeft
        myWordApp.Selection.Font.Name = "Franklin Gothic Demi Cond"
        myWordApp.Selection.Font.Size = 16
        myWordApp.Selection.TypeText(TextBoxtelp.Text)

        myworddoc.Bookmarks("alamat").Select()
        myWordApp.Selection.Paragraphs.Alignment = word.WdParagraphAlignment.wdAlignParagraphLeft
        myWordApp.Selection.Font.Name = "Franklin Gothic Demi Cond"
        myWordApp.Selection.Font.Size = 16
        myWordApp.Selection.TypeText(TextBoxalamat.Text)

        myworddoc.Bookmarks("judulbuku").Select()
        myWordApp.Selection.Paragraphs.Alignment = word.WdParagraphAlignment.wdAlignParagraphLeft
        myWordApp.Selection.Font.Name = "Franklin Gothic Demi Cond"
        myWordApp.Selection.Font.Size = 16
        myWordApp.Selection.TypeText(Textboxjudul.Text)

        myworddoc.Bookmarks("pengarang").Select()
        myWordApp.Selection.Paragraphs.Alignment = word.WdParagraphAlignment.wdAlignParagraphLeft
        myWordApp.Selection.Font.Name = "Franklin Gothic Demi Cond"
        myWordApp.Selection.Font.Size = 16
        myWordApp.Selection.TypeText(TextBoxpengarang.Text)

        myworddoc.Bookmarks("penerbit").Select()
        myWordApp.Selection.Paragraphs.Alignment = word.WdParagraphAlignment.wdAlignParagraphLeft
        myWordApp.Selection.Font.Name = "Franklin Gothic Demi Cond"
        myWordApp.Selection.Font.Size = 16
        mywordapp.Selection.TypeText(TextBoxpenerbit.Text)

        myworddoc.SaveAs("D:\TUGASPEMRO.docx")
        mywordapp.Visible = True
        
    End Sub
End Class