• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Hỏi về file WORD! cần gấp! help me

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Điều hành viên: tungblt

echippro
Bài viết: 5
Ngày tham gia: T.Ba 23/09/2008 10:50 pm

Hỏi về file WORD! cần gấp! help me

Gửi bàigửi bởi echippro » T.Ba 04/11/2008 5:45 pm

1) CODE nào để đóng hết tất cả các files word đang mở?
2)Tôi đùng code sau để mở file word, làm thế nào để biết khi người dùng nhấn vào nút OPEN hay CANCEL của hộp thoại OPEN FILE, và tôi muốn chỉ chọn những file word (*.doc) thì viết code như thế nào? (Xem hình gửi kèm)
3) Có CODE nào để thay thế không cần dùng vòng lặp FOR bên dưới không (từ dòng số 7->10). Cảm ơn các bạn rất nhiều!

Mã: Chọn hết

  1.  
  2. Set objWord = CreateObject("Word.Application")
  3. objWord.ChangeFileOpenDirectory (App.Path)
  4. objWord.FileDialog(1).Title = "Mo de file Word"
  5. 'objWord.FileDialog(1).Filter
  6. If objWord.FileDialog(1).Show = -1 Then
  7.     For Each objFile In objWord.FileDialog(1).SelectedItems
  8.         Set objDoc = objWord.Documents.Open(objFile)
  9.         objWord.Visible = True                
  10.     Next
  11. End If
  12.  End Sub
  13.  
Tập tin đính kèm
hop thoai.JPG



tindl88
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 363
Ngày tham gia: T.Bảy 26/04/2008 6:10 pm
Has thanked: 16 time
Been thanked: 10 time

Re: Hỏi về file WORD! cần gấp! help me

Gửi bàigửi bởi tindl88 » T.Ba 04/11/2008 7:47 pm

Mã: Chọn hết

  1. Filter = "Word files (*.doc) & chr$(0) & "*.doc" & chr$(0)


Cái trên không dc thì cái chọn này

Mã: Chọn hết

  1. Filter = "Word files (*.doc)|*.doc"
cứng nhắc...vớ vẩn

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4758
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 514 time

Re: Hỏi về file WORD! cần gấp! help me

Gửi bàigửi bởi truongphu » T.Ba 04/11/2008 7:56 pm

echippro đã viết:1) CODE nào để đóng hết tất cả các files word đang mở?

Mã: Chọn hết

  1. Private Sub Form_Load()
  2. Set objWMIService = GetObject("winmgmts:\\" & "." & "\root\cimv2")
  3. Set colProcessList = objWMIService.ExecQuery _
  4.     ("Select * from Win32_Process Where Name = 'WINWORD.exe'")
  5. For Each objProcess In colProcessList
  6.     objProcess.Terminate
  7. Next
  8. End Sub


echippro đã viết:2)Tôi đùng code sau để mở file word, làm thế nào để biết khi người dùng nhấn vào nút OPEN hay CANCEL của hộp thoại OPEN FILE, và tôi muốn chỉ chọn những file word (*.doc) thì viết code như thế nào?


Mã: Chọn hết

  1. Set objWord = CreateObject("Word.Application")
  2. objWord.ChangeFileOpenDirectory (App.Path)
  3. objWord.FileDialog(1).Title = "Mo de file Word"
  4. objWord.FileDialog(1).Filters.Add "Doc", "*.doc", 1
  5. If objWord.FileDialog(1).Show = -1 Then
  6.     For Each objFile In objWord.FileDialog(1).SelectedItems
  7.         Set objDoc = objWord.Documents.Open(objFile)
  8.      objWord.Visible = True
  9.     Next
  10. End If


echippro đã viết:3) Có CODE nào để thay thế không cần dùng vòng lặp FOR bên dưới không (từ dòng số 7->10).

Chưa biết
Trong code trên đã dùng Object Word.Application thì chấp nhận cấu trúc for...next vậy
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

TTD
Thành viên chính thức
Thành viên chính thức
Bài viết: 34
Ngày tham gia: T.Bảy 29/03/2008 10:25 am
Been thanked: 1 time

Re: Hỏi về file WORD! cần gấp! help me

Gửi bàigửi bởi TTD » T.Ba 04/11/2008 8:24 pm

@truongphu: với script ta có thể viết như sau: :) đặc biệt phù hợp với những người thích code ngắn gọn như tôi và bác :)

Mã: Chọn hết

  1. For Each objProcess In GetObject("winmgmts:").ExecQuery("Select * from Win32_Process Where Name = 'WINWORD.exe'")
  2.     objProcess.Terminate
  3. Next

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4758
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 514 time

Re: Hỏi về file WORD! cần gấp! help me

Gửi bàigửi bởi truongphu » T.Ba 04/11/2008 8:28 pm

tôi chịu TTD
code nầy lần đầu thấy trên thế giới
mà vẫn chạy êm
Sẽ chung một chầu gì đó cho bài học nầy
bỏ "." là my computer đó
bỏ "\root\cimv2" là thư mục truy xuất
(có lẽ nó chạy chậm một chút -> vì truy xuất toàn bộ,nhưng không sao, quá gọn)
hê hê, hay thật! :D
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

TTD
Thành viên chính thức
Thành viên chính thức
Bài viết: 34
Ngày tham gia: T.Bảy 29/03/2008 10:25 am
Been thanked: 1 time

Re: Hỏi về file WORD! cần gấp! help me

Gửi bàigửi bởi TTD » T.Ba 04/11/2008 9:15 pm

Bác mới thấy à? :D Đó là kết quả tui thu nhặt được sau nửa ngày nghiên cứu WMI.

Lưu ý thêm: khi muốn truy xuất tới cimv2 thì có thể dùng ngắn gọn là winmgmts: do cimv2 là mặc định. Còn khi muốn dùng các namespace khác thì vui lòng khai báo đầy đủ đường dẫn.

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4758
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 514 time

Re: Hỏi về file WORD! cần gấp! help me

Gửi bàigửi bởi truongphu » T.Ba 04/11/2008 9:37 pm

Ngoài TTD tôi còn có thầy echippro với đề bài:
echippro đã viết:Có CODE nào để thay thế không cần dùng vòng lặp FOR bên dưới không?


Đây là kết quả tôi thu nhặt được sau nửa tiếng nghiên cứu xóa sửa code nêu trên: Từ bỏ For...Next!

Mã: Chọn hết

  1. Set objWord = CreateObject("Word.Application")
  2. objWord.ChangeFileOpenDirectory (App.Path)
  3. objWord.FileDialog(1).Title = "Mo de file Word"
  4. objWord.FileDialog(1).Filters.Add "Doc", "*.doc", 1
  5. If objWord.FileDialog(1).Show = -1 Then _
  6. Set objDoc = objWord.Documents.Open(objWord.FileDialog(1).SelectedItems.Item(1))

Bảo đảm chạy êm
cảm ơn hai Thầy :D :))
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

echippro
Bài viết: 5
Ngày tham gia: T.Ba 23/09/2008 10:50 pm

Re: Hỏi về file WORD! cần gấp! help me

Gửi bàigửi bởi echippro » T.Ba 04/11/2008 10:24 pm

Cám ơn các bạn nhiều lắm! Mong bạn truongphu và TTD chỉ giúp mình câu thứ 2 với: hiển thị thông báo khi nhấn nút OK hay CANCEL của hộp thoại Open File ở hình đã gửi kèm
Tập tin đính kèm
hop thoai.JPG

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4758
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 514 time

Re: Hỏi về file WORD! cần gấp! help me

Gửi bàigửi bởi truongphu » T.Tư 05/11/2008 3:49 am

A! lại còn câu nầy nữa ư? thì đây, dễ mà

Mã: Chọn hết

  1. Set objWord = CreateObject("Word.Application")
  2. objWord.ChangeFileOpenDirectory (App.Path)
  3. objWord.FileDialog(1).Title = "Mo de file Word"
  4. objWord.FileDialog(1).Filters.Add "Doc", "*.doc", 1
  5.     If objWord.FileDialog(1).Show = -1 Then
  6.         Set objDoc = objWord.Documents.Open(objWord.FileDialog(1).SelectedItems.Item(1))
  7.         MsgBox "Mo' File"
  8.     Else
  9.         MsgBox "Không Chon"
  10.     End If

Bạn nên mua một tấm vé số: Quá hên! 4 vấn đề đều được giải quyết trọn vẹn :))
Lưu ý: Các code trên là code VBS. Nếu bạn nghiên cứu chơi thì OK, còn trong môi trường giáo dục có lẽ quý thầy cô hơi bị dị ứng VBS chăng?
Riêng phần Word.Application, thay vì Set objWord = CreateObject("Word.Application"),code chính thống là:

Mã: Chọn hết

  1. Dim objWord As New Word.Application

sau khi đã khai references MS Word 10 hay 11.0
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

tindl88
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 363
Ngày tham gia: T.Bảy 26/04/2008 6:10 pm
Has thanked: 16 time
Been thanked: 10 time

Re: Hỏi về file WORD! cần gấp! help me

Gửi bàigửi bởi tindl88 » T.Tư 05/11/2008 10:19 am

truongphu đã viết:Các code trên là code VBS. Nếu bạn nghiên cứu chơi thì OK, còn trong môi trường giáo dục có lẽ quý thầy cô hơi bị dị ứng VBS chăng?


Dị ứng chắc. Code VBS cực kỳ ngắn gọn nhưng mà mỗi lần đọc thì tóc nó muốn dựng lên :D
cứng nhắc...vớ vẩn

echippro
Bài viết: 5
Ngày tham gia: T.Ba 23/09/2008 10:50 pm

Re: Hỏi về file WORD! cần gấp! help me

Gửi bàigửi bởi echippro » T.Tư 05/11/2008 10:36 am

Thank you very much! Bạn giúp mình câu hỏi này nữa nhé! LÀm thế nào để thao tác trực tiếp trên file Word đã mở sẵn (Không dùng code vb để mở mà mở bằng "tay") như muốn :thêm vào 1 dòng chữ nào đó "Echip" trong file Word đã mở ở trên.

tindl88
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 363
Ngày tham gia: T.Bảy 26/04/2008 6:10 pm
Has thanked: 16 time
Been thanked: 10 time

Re: Hỏi về file WORD! cần gấp! help me

Gửi bàigửi bởi tindl88 » T.Tư 05/11/2008 10:41 am

thao tác trực tiếp trên file Word (thêm dòng "Echip")
Như vậy thì gõ cho rồi. Chi cho rắc rối hả bạn.
Có cái code tạo file doc của bác truongphu, bạn coi thử nha.
http://caulacbovb.com/forum/viewtopic.p ... +bay#p4881
cứng nhắc...vớ vẩn


Quay về “Visual Basic 6 và Visual Basic Script (VB & VBS)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.4 khách