Anda di halaman 1dari 14

Menampilkan File *.doc dan *.docx di Vb.

Net 2008
Moch. Afif 11:41 PM

Dengan konsep oop atau manajemen file maka kita dimungkinkan mengakses data yang
berada di luar main program, dimana disini akan dicontohkan dengan menampilkan file
berextensi doc dan docx, menggunakan beberapa .net
Pertama-tama buat form dengan kelengkapan seperti di bawah ini

Kemudian klik textbox1 dan rubahlah properties multiline menjadi true seperti gambar
dibawah ini

Jika sudah dan benar maka textbox1 anda bisa ditarik kebawah seperti gambar dibawa

Kemudian Pilih project dan klik add reference untuk meng import method dari .net atau
COM

Pilih .Net kemudian cari Microsoft.Office.Interop.Word kemudian klik ok, Seperti Gambar
dibawah

Langkah selanjutnya adalah memasukan codingnya, pilih even Open di menustrip yg telah
kita buat tadi, Lihat Gambar

Kemudian ketik semua kode yang saya kasih kurung warna merah dan sesuaikan tempatnya,
Lihat gambar

Kemudian Klik lagi menustrip yang Exit untuk memberi kode kepada tombol exit, Lihat
Gambar

Kemudian Masukan Kde dibawah ini sesuai tanda merah, Lihat Gambar

Kemudian jalan kan dengan menekan tombol seperti yg ada digambar berikut

Jika tidak ada yng error maka anda akan mendapati seperti discreenshoot

Sebagai perbandingan saya kasih file yang ditampilkan lewat MS Office Word 2013

Cara menanamkan dan mengotomatisasi dokumen


Office dengan Visual Basic

Email

Print

Support for Office 2003 has ended


Microsoft ended support for Office 2003 on April 8, 2014. This change has affected your
software updates and security options. Learn what this means for you and how to stay
protected.
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin
penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft
menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun
artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki
akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan
(Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang
diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut
mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama
seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak
bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang
disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh
para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin
penerjemah.
242243
RINGKASAN
Ketika mengembangkan aplikasi yang menggunakan data dalam dokumen
Office, mungkin akan bermanfaat untuk memiliki data yang disajikan langsung di
dalam aplikasi Visual Basic sehingga pengguna dapat melihat dan mengedit data
tanpa harus beralih ke aplikasi Office. Anda dapat melakukan ini dalam Visual
Basic menggunakan OLE kontainer kontrol.
Artikel ini menunjukkan cara membuat secara dinamis dan otomatis dokumen
Office menggunakan OLE kontainer kontrol.
INFORMASI LEBIH LANJUT
Kemampuan untuk menyisipkan dokumen Office ke Visual Basic dimungkinkan
dengan sematan dan penanaman (OLE) teknologi Microsoft. OLE dirancang untuk
membiarkan aplikasi host objek milik aplikasi lain dengan cara yang nyaman
untuk pengguna akhir, tetapi tidak memerlukan aplikasi yang terlibat untuk
mengetahui rincian internal yang lain. Visual Basic menyediakan OLE kontainer
kontrol untuk membiarkan Visual Basic programmer menambahkan Objek OLE ke
bentuk.

Setelah objek tertanam, kebanyakan OLE server mendukung otomatisasi untuk


membiarkan aplikasi host secara sistematis mengubah atau manipulasi objek
dari kode. Untuk mendapatkan referensi ke objek automasi , gunakan properti
objek OLE kontainer. Properti ini mengembalikan objek automasi yang cocok
tertentu item tertanam.
Membuat aplikasi Visual Basic yang menjadi tuan rumah buku kerja Excel
1. Mulai Visual Basic dan buat projek standard baru. Form1 dibuat secara
asali.
2. Dari toolbox kontrol, tambahkan tiga tombol perintah untuk Form1.
Kemudian tambahkan contoh kontrol OLE kontainer. Ketika kontrol OLE
kontainer ditempatkan di borang, itu akan meminta Anda untuk jenis objek
yang ingin Anda masukkan. Untuk contoh ini, Anda harus menambahkan
objek dinamis, jadi klik Batalkan untuk menyingkirkan dialog tanpa
menambahkan objek.
3. Di jendela kode untuk Form1, tambahkan kode berikut ini:
4.
5. Option Explicit
6.
7. Dim oBook As Object
8. Dim oSheet As Object
9.
10. Private Sub Command1_Click()
11.
On Error GoTo Err_Handler
12.
13.
' Create a new Excel worksheet...
14.
OLE1.CreateEmbed vbNullString, "Excel.Sheet"
15.
16.
' Now, pre-fill it with some data you
17.
' can use. The OLE.Object property returns a
18.
' workbook object, and you can use Sheets(1)
19.
' to get the first sheet.
20.
Dim arrData(1 To 5, 1 To 5) As Variant
21.
Dim i As Long, j As Long
22.
23.
Set oBook = OLE1.object
24.
Set oSheet = oBook.Sheets(1)
25.
26.
' It is much more efficient to use an array to
27.
' pass data to Excel than to push data over
28.
' cell-by-cell, so you can use an array.
29.
30.
' Add some column headers to the array...
31.
arrData(1, 2) = "April"
32.
arrData(1, 3) = "May"
33.
arrData(1, 4) = "June"
34.
arrData(1, 5) = "July"
35.
36.
' Add some row headers...
37.
arrData(2, 1) = "John"
38.
arrData(3, 1) = "Sally"

39.
arrData(4, 1) = "Charles"
40.
arrData(5, 1) = "Toni"
41.
42.
' Now add some data...
43.
For i = 2 To 5
44.
For j = 2 To 5
45.
arrData(i, j) = 350 + ((i + j) Mod 3)
46.
Next j
47.
Next i
48.
49.
' Assign the data to Excel...
50.
oSheet.Range("A3:E7").Value = arrData
51.
52.
oSheet.Cells(1, 1).Value = "Test Data"
53.
oSheet.Range("B9:E9").FormulaR1C1 = "=SUM(R[-5]C:R[-2]C)"
54.
55.
' Do some auto formatting...
56.
oSheet.Range("A1:E9").Select
57.
oBook.Application.Selection.AutoFormat
58.
59.
Command1.Enabled = False
60.
Command2.Enabled = False
61.
Command3.Enabled = True
62.
Exit Sub
63.
64. Err_Handler:
65.
MsgBox "An error occurred: " & Err.Description, vbCritical
66. End Sub
67.
68. Private Sub Command2_Click()
69.
On Error GoTo Err_Handler
70.
71.
' Create an embedded object using the data
72.
' stored in Test.xls.<?xm-insertion_mark_start author="v-thomr"
time="20070327T040420-0600"?> If this code is run in Microsoft Office
73.
' Excel 2007, <?xm-insertion_mark_end?><?xm-deletion_mark
author="v-thomr" time="20070327T040345-0600" data=".."?><?xminsertion_mark_start author="v-thomr" time="20070327T040422-0600"?
>change the file name to Test.xlsx.<?xm-insertion_mark_end?>
74.
OLE1.CreateEmbed "C:\Test.xls"
75.
76.
Command1.Enabled = False
77.
Command2.Enabled = False
78.
Command3.Enabled = True
79.
Exit Sub
80.
81. Err_Handler:
82.
MsgBox "The file 'C:\Test.xls' does not exist" & _
83.
" or cannot be opened.", vbCritical
84. End Sub
85.
86. Private Sub Command3_Click()
87.
On Error Resume Next
88.
89.
' Delete the existing test file (if any)...
90.
Kill "C:\Test.xls"
91.
92.
' Save the file as a native XLS file...
93.
oBook.SaveAs "C:\Test.xls"
94.
Set oBook = Nothing
95.
Set oSheet = Nothing

96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.

' Close the OLE object and remove it...


OLE1.Close
OLE1.Delete
Command1.Enabled = True
Command2.Enabled = True
Command3.Enabled = False
End Sub
Private Sub Form_Load()
Command1.Caption = "Create"
Command2.Caption = "Open"
Command3.Caption = "Save"
Command3.Enabled = False
End Sub

112.
Tekan tombol F5 untuk menjalankan program. Klik tombol buat . Ini
komprehensif lembar kerja baru dan mengotomatiskan Excel untuk
menambah data secara langsung ke lembar. Perhatikan bahwa jika Anda
mengklik dua kali objek, diaktifkan di tempat dan pengguna dapat
mengedit data secara langsung. Klik Simpan untuk menyimpan data untuk
berkas dan menutup Objek OLE. Tombol membuka memungkinkan Anda
membuka salinan berkas disimpan sebelumnya.

Membuat aplikasi Visual Basic yang menginangi dokumen Word


1. Mulai Visual Basic dan buat projek standard baru. Form1 dibuat secara
asali.
2. Dari toolbox kontrol, tambahkan tiga tombol perintah untuk Form1.
Kemudian tambahkan contoh kontrol OLE kontainer. Ketika kontrol OLE
kontainer ditempatkan di borang, itu akan meminta Anda untuk jenis objek
yang ingin Anda masukkan. Untuk contoh ini, kita perlu menambahkan
objek dinamis, jadi klik Batalkan untuk menyingkirkan dialog tanpa
menambahkan objek.
3. Di jendela kode untuk Form1, tambahkan kode berikut ini:
4.
5. Option Explicit
6.
7. Dim oDocument As Object
8.
9. Private Sub Command1_Click()
10.
On Error GoTo Err_Handler
11.
12.
' Create a new Word Document...
13.
OLE1.CreateEmbed vbNullString, "Word.Document"
14.
15.
' Add some text to the document. The OLE.Object
16.
' property returns the document object...
17.
Set oDocument = OLE1.object
18.

19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.

oDocument.Content.Select
With oDocument.Application.Selection
' Add a heading at the top of the document...
.Style = oDocument.Styles("Heading 1")
.Font.Color = &HFF0000
.TypeText "Blue Sky Airlines"
.ParagraphFormat.Alignment = 1 '[wdAlignParagraphCenter]
.TypeParagraph
.TypeParagraph

& _

' Now add some text...


.TypeText "Dear Mr. Smith,"
.TypeParagraph
.TypeParagraph
.TypeText "Thank you for your interest in our current fares "

36.

"from Oakland to Sacramento. We guarantee to be " &

37.
38.
39.
40.
41.

"the lowest price for local flights, or we'll " & _


"offer to make your next flight FREE!"
.TypeParagraph
.TypeParagraph
.TypeText "The current fare for a flight leaving Oakland " &

42.

"on October 4, 1999 and arriving in Sacramento " &

43.
"the same day is $54.00."
44.
.TypeParagraph
45.
.TypeParagraph
46.
.TypeText "We hope you will choose to fly Blue Sky Airlines."
47.
.TypeParagraph
48.
.TypeParagraph
49.
.TypeText "Sincerely,"
50.
.TypeParagraph
51.
.TypeParagraph
52.
.TypeParagraph
53.
.TypeText "John Taylor"
54.
.TypeParagraph
55.
.Font.Italic = True
56.
.TypeText "Regional Sales Manager"
57.
.TypeParagraph
58.
59.
End With
60.
61.
' Zoom to see entire document...
62.
OLE1.SizeMode = 3
63.
OLE1.DoVerb -1
64.
65.
Command1.Enabled = False
66.
Command2.Enabled = False
67.
Command3.Enabled = True
68.
Exit Sub
69.
70.
71. Err_Handler:
72.
MsgBox "An error occurred: " & Err.Description, vbCritical
73. End Sub
74.
75. Private Sub Command2_Click()

76.
77.
78.
79.

On Error GoTo Err_Handler

' Create an embedded object using the data


' stored in Test.doc.<?xm-insertion_mark_start author="v-thomr"
time="20070327T040719-0600"?> If this code is run in Microsoft Office
80.
' Word 2007, change the file name to Test.docx.<?xminsertion_mark_end?><?xm-deletion_mark author="v-thomr"
time="20070327T040717-0600" data=".."?>
81.
OLE1.CreateEmbed "C:\Test.doc"
82.
83.
Command1.Enabled = False
84.
Command2.Enabled = False
85.
Command3.Enabled = True
86.
Exit Sub
87.
88. Err_Handler:
89.
MsgBox "The file 'C:\Test.doc' does not exist" & _
90.
" or cannot be opened.", vbCritical
91. End Sub
92.
93. Private Sub Command3_Click()
94.
On Error Resume Next
95.
96.
' Delete the existinf test file (if any)...
97.
Kill "C:\Test.doc"
98.
99.
' Save the file as a native Word DOC file...
100.
oDocument.SaveAs "C:\Test.doc"
101.
Set oDocument = Nothing
102.
103. ' Close the OLE object and remove it...
104.
OLE1.Close
105.
OLE1.Delete
106.
107.
Command1.Enabled = True
108.
Command2.Enabled = True
109.
Command3.Enabled = False
110. End Sub
111.
112.
113. Private Sub Form_Load()
114.
Command1.Caption = "Create"
115.
Command2.Caption = "Open"
116.
Command3.Caption = "Save"
117.
Command3.Enabled = False
118. End Sub

119.
Tekan tombol F5 untuk menjalankan program. Klik tombol buat . Ini
komprehensif dokumen baru dan mengotomatiskan Word untuk
menambah data secara langsung ke dokumen. Perhatikan bahwa jika Anda
mengklik dua kali objek, diaktifkan di tempat dan pengguna dapat
mengedit data secara langsung. Klik Simpan untuk menyimpan data untuk
berkas dan menutup Objek OLE. Tombol membuka memungkinkan Anda
membuka salinan berkas disimpan sebelumnya.
Pertimbangan saat menggunakan kontainer OLE

Jika Anda menanamkan dari berkas yang ada, data terlihat di dalamnya
OLE kontainer adalah salinan data pada berkas. Setiap perubahan yang
Anda buat tidak secara otomatis disimpan ke berkas yang sama. Meskipun
Anda dapat menggunakan teknik yang mirip dengan salah satu di atas
untuk menyimpan hasil kembali ke berkas tertentu, tidak semua OLE
server mendukung kemampuan ini. Tidak dianggap perilaku Objek OLE
normal.

Jika Anda adalah "menghubungkan" ke berkas, objek tidak dapat


diaktifkan di tempat. Namun, saat pengguna double-clicks objek, objek
dibuka di jendela aplikasi server. Objek tertanam hanya dapat diaktifkan di
tempat.

Kontrol OLE kontainer adalah data terikat sadar. Jika Anda memiliki
database Access 97 atau Access 2000, Anda dapat mengikat kontrol OLE
objek kolom dalam database. Ketika bentuk ditampilkan, data ditarik dari
pangkalan data dan ditampilkan untuk pengguna untuk mengedit.
Perubahan pengeditan yang dibuat oleh pengguna secara otomatis
disimpan kembali ke pangkalan data ketika Objek OLE ditutup.
Untuk membuat kontrol OLE kontainer data dibatasi, tambahkan kontrol
Visual Basic Data dan menetapkan properti DatabaseName ke jalur
pangkalan data. Kemudian tetapkan RecordSource tabel yang ada di
dalam database. Menggunakan kontrol OLE DataSource properti untuk
mengikat kontrol kontrol Visual Basic Data, dan kemudian tetapkan
properti DataField mengarah ke kolom tertentu dalam recordset yang
berisi Objek OLE. Visual Basic melakukan sisanya.

Ukuran dan posisi sempadan kemudian pecah yang menampilkan ketika


kontainer yang dibuat di tempat aktif ditentukan oleh ukuran objek dan
opsi yang dipilih untuk kontrol OLE. Batas ini ditampilkan untuk menandai
batas jendela pengeditan. Batas jendela pengeditan sering tidak cocok
batas kontainer OLE sendiri; perilaku ini normal untuk objek OLE. Jendela
pengeditan tidak dapat diubah secara sistematis dari Visual Basic.

Beberapa metode otomatisasi mungkin gagal untuk bekerja dengan benar


kecuali objek yang telah dibuat di tempat aktif. Untuk secara programatik
mengaktifkan Objek OLE, gunakan metode DoVerb dan menentukan
vbOLEShow-(1) sebagai kata kerja.

Anda dapat menentukan apakah objek tertanam atau tertaut muncul


dalam bentuk kontainer dengan menata properti NegotiateMenus borang.
Jika bentuk anak NegotiateMenus properti diatur ke True dan kontainer
bilah menu yang ditetapkan, Menu objek ditempatkan di wadah menu bar
ketika objek diaktifkan. Jika kontainer telah tanpa bilah menu, atau
properti NegotiateMenus diatur ke False, objek menu tidak muncul ketika
sudah diaktifkan. Perhatikan bahwa properti NegotiateMenus tidak berlaku
untuk formulir MDI sehingga bentuk MDI menu tidak dapat bergabung
dengan objek diaktifkan. Untuk menggambarkan negosiasi menu, cobalah
berikut ini dengan aplikasi contoh yang Anda buat di bagian sebelumnya:

1. Jalankan aplikasi dan klik tombol buat untuk menanamkan dokumen


baru di wadah OLE.
2. Klik kanan OLE kontainer dan pilih Edit di tempat mengaktifkan
objek. Perhatikan bahwa menu untuk objek aplikasi muncul karena
properti NegotiateMenus Form1 disetel ke True secara default.
3. Tutup formulir untuk mengakhiri aplikasi.
4. Dengan Form1 dipilih, klik Menu Editor pada menu alat .
5. Membuat menu tingkat atas baru dengan judul File dan nama
mnuFile. Set NegotiatePosition properti ini menu "1-kiri." Membuat
item menu dengan judul terbuka dan nama mnuOpen.
6. Klik OK untuk menutup Penyunting menu.
7. Sekali lagi, jalankan aplikasi dan klik tombol buat untuk
menanamkan dokumen baru di wadah OLE.
8. Klik kanan kontainer OLE dan pilih Edit di tempat mengaktifkan
objek. Perhatikan bahwa menu untuk Form1 digabung dengan menu
untuk objek aplikasi.
Visual Basic tidak mengizinkan Anda mengontrol proses penggabungan
menu atau mengubah item menu server ketika ditambahkan. Namun,
Anda dapat mengubah atau mengubah menu aplikasi Office melalui
otomatisasi menggunakan kode yang mirip berikut ini:
' This code disables the Insert|Object item on the merged menu...
Dim oMenuBar As Object
Set oMenuBar = oBook.Application.CommandBars("Worksheet Menu Bar")
oMenuBar.Controls("&Insert").Controls("&Object...").Enabled =
False

Harap dicatat bahwa beberapa perubahan yang perlu dilakukan sebelum


objek yang dibuat aktif di tempat, atau perubahan mungkin gagal untuk
ditampilkan di menu gabungan.
Catatan Poin-poin ini tidak berlaku untuk Microsoft Office Excel 2007 atau
Microsoft Office Word 2007.

Visual Basic saat ini tidak mendukung penetapan toolbar ruang. Dengan
demikian, luntang Toolbar tidak biasanya muncul ketika objek diaktifkan.
Namun, mungkin untuk menampilkan jendela alat terapung dengan
otomatisasi:

OLE1.DoVerb -1 '[vbOLEShow]
With oBook.Application.CommandBars("Standard")
.Position = 4 '[msoBarFloating]

.Visible = True
End With

Catatan Poin-poin ini tidak berlaku untuk Microsoft Office Excel 2007 atau
Microsoft Office Word 2007.

Untuk program yang memerlukan objek tetap aktif di tempat di sepanjang


waktu, Microsoft menyediakan teknologi ActiveX dokumen. Tidak semua
server OLE yang server ActiveX dokumen; Microsoft Word, Microsoft Excel
dan Microsoft PowerPoint adalah server ActiveX dokumen.
Visual Basic tidak mendukung kontrol ActiveX menginangi dokumen asli.
Namun, kontrol WebBrowser yang dilengkapi dengan Internet Explorer
(versi 3.0 dan lebih tinggi) mendukung bentuk di tempat penahanan.
Dimungkinkan untuk menggunakan kontrol ini untuk membuka dokumen
Office sebagai dokumen ActiveX. Untuk informasi selengkapnya tentang
cara menggunakan kontrol WebBrowser, baca artikel berikut ini:
243058 bagaimana cara menggunakan kontrol WebBrowser untuk
membuka dokumen Office

Metode SaveToFile kontainer OLE membuat berkas yang dapat dibuka


dalam kontainer OLE. Namun, berkas yang disimpan dengan kontainer
OLE SaveToFile metode tidak dapat dibuka secara langsung di aplikasi
Office yang sesuai. Jika Anda ingin menyimpan dokumen Anda tertanam
ke disk sehingga dokumen yang dapat dibuka dalam aplikasi target,
gunakan aplikasi dokumen SaveAs metode:
OLE1.object.SaveAs ("C:\MyNewFile.doc")

Anda mungkin juga menyukai