VBA cho Word

nhattan67

Thành viên mới
Tham gia ngày
11 Tháng một 2008
Bài viết
35
Được thích
3
Điểm
0
Tuổi
30
Em muốn viết vài tiện ích cho WinWord. Nhưng thực sự em chưa biết Code tạo menu cho Word.
Tức là như thế này: các anh/chị có thể giúp em viết đoạn code trong VBA sao cho khi mở word thì menu chứa chương trình của mình sẽ nằm trên thanh menu của word.( giống như menu Help, File, View của Word vậy đó)
Xin chân thành cám ơn.
Wert.
 

boong

Thành viên thường trực
Tham gia ngày
11 Tháng một 2008
Bài viết
285
Được thích
264
Điểm
0
Chào bạn, trong tay bạn đã tạo được tiện ích chạy được rồi đúng không. Vậy bạn hãy tạo thêm một Macro gì đó (chẳng hạn là Mo) với lệnh là mở tiện ích đó lên. Rồi vào View -> Toolbars -> Customize... -> Tab Toolbars -> New -> đặt tên cho Menu mới là gì thì tùy bạn. Sau đó qua Tab Commands -> chọn Macros trong mục Categories: -> chọn Macro Mo lúc nãy. Rồi kéo thảo vào Menu mới kia. Bạn bấm phải chuột vào nút lệnh mới rồi chọn các tùy chọn cho nó như: -Name: tên cho nút lệnh đó -Change Button Image: thay đổi hình bằng hình có sẳn -Assign Hyperlink.. -> Insert Picture: để chèn một ảnh nào đó vào ..v..v. Tùy bạn chọn cho nó. Với nhiều nút lệnh thì có nhiều Macro để mở nhiều chức năng khác nhau của chương trình của bạn. Mong rằng như vậy đủ để bạn thực hiện cách tạo menu của nha. Chúc bạn vui - khoẻ.
 
Lần chỉnh sửa cuối:

danhdanh81

Thành viên mới
Tham gia ngày
18 Tháng tư 2008
Bài viết
29
Được thích
4
Điểm
0
Tuổi
40
vậy trên word 2007 thì sao. hình như hướng dẫn của boong là 2003 thì phải
-----------------------------------------
 

phamduylong

-
Thành viên đã mất
Tham gia ngày
30 Tháng mười hai 2006
Bài viết
920
Được thích
2,352
Điểm
0
Tuổi
66
Nơi ở
Đồng Tháp
Kiểm tra vị trí con trỏ cuối tài liệu

Mình mới tập tành VBA Word, viết thủ tục này để duyệt lần lượt từ ký tự đầu đến ký tự cuối cùng của document. Còn nhiều vấn đề phải học thêm. Các bạn cho biết :

1. Làm thế nào xác định được con trỏ đang ở cuối tài liệu thoát vòng lặp trong thủ tục này:
Mã:
Sub VbaWord()
Selection.HomeKey Unit:=wdStory
Do
  Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
  kytu = Selection
  Selection.MoveRight
Loop
End Sub
2. Làm sao biết vị trí con trỏ đang ở ký tự thứ mấy trong tài liệu ?
 
Lần chỉnh sửa cuối:

quanhong.113

Thành viên mới
Tham gia ngày
14 Tháng tư 2009
Bài viết
2
Được thích
0
Điểm
0
Tuổi
40
Có ai có code để sắp xếp tiếng Việt tể tạo Marco trong Word khong? cho mình xin với, mình khong biết về VBA! cảm ơn nhiều!
 

phuocduyen

Thành viên mới
Tham gia ngày
22 Tháng năm 2009
Bài viết
1
Được thích
0
Điểm
0
Tuổi
32
Em cũng có cái đề này mà ko biết bắt đầu giải quyết sao nữa? Mong các bác giúp đỡ em.
1. Liệt kê tất cả các font của hệ thống trong file word, săp xếp theo thứ tự từ điển.
2.Chuyển tất cả các hyperlink trong trang thành văn bản thường.
3.Chuyển một vùng chọn trong excel thành một bảng trong word .
4. chương trình cài đắt font tạm thời.
Dùng VBA để làm. Nhưng em ko hiểu ji cả, các bác giúp em được với. Cám ơn các bác nhiều
Các bác có thể mình họa cho e một bài cũng được ạ. Đa tạ các bác
 

hungmo

Thành viên mới
Tham gia ngày
16 Tháng mười hai 2007
Bài viết
19
Được thích
3
Điểm
665
Tuổi
45
VBA của Word

Cần làm 4 đề kiểm tra, số lượng câu hỏi được lấy từ ngân hàng

Rút mỗi chương 1 câu,mỗi độ khó 1 câu

Xin mã lệnh viết bằng VBA của word
Kèm theo file yêu cầu !
 

File đính kèm

hungmo

Thành viên mới
Tham gia ngày
16 Tháng mười hai 2007
Bài viết
19
Được thích
3
Điểm
665
Tuổi
45
Trong diễn đàn ai biết xin cho câu trả lời !
Ở VBA Khi dùng lệnh:

Set HS = Application.InputBox("Chọn vùng : ", "Thông báo", Type:=8)
MsgBox "So Cells=" & HS.Cells.Count

Lúc chạy chương trình :
- Nếu kéo chọn từ A1 đến A10 cho kết quả là 10
- Nếu kéo chọn từ A1 đến C10 cho kết quả là 30
Hỏi : Nếu kẻo chọn từ A1 đến D10 để biết được có 10 dòng và 4 cột thì dùng lệnh nào ?
 

thanhlanh

Thành viên tích cực
Tham gia ngày
21 Tháng hai 2008
Bài viết
841
Được thích
1,220
Điểm
860
Trong diễn đàn ai biết xin cho câu trả lời !
Ở VBA Khi dùng lệnh:

Set HS = Application.InputBox("Chọn vùng : ", "Thông báo", Type:=8)
MsgBox "So Cells=" & HS.Cells.Count

Lúc chạy chương trình :
- Nếu kéo chọn từ A1 đến A10 cho kết quả là 10
- Nếu kéo chọn từ A1 đến C10 cho kết quả là 30
Hỏi : Nếu kẻo chọn từ A1 đến D10 để biết được có 10 dòng và 4 cột thì dùng lệnh nào ?

Thay MsgBox "So Cells=" & HS.Cells.Count

bằng
MsgBox "So dong = " & HS.Rows.Count & "; So cot = " & HS.Columns.Count
 
Lần chỉnh sửa cuối:

ptm0412

Excel Ordinary Member
Thành viên BQT
Super Moderator
Tham gia ngày
4 Tháng mười một 2007
Bài viết
9,467
Được thích
28,809
Điểm
1,910
Tuổi
58
Nơi ở
Gò Vấp
Sao lại hỏi Excel trong topic Word?
 

huutinh85

Thành viên hoạt động
Tham gia ngày
8 Tháng một 2013
Bài viết
109
Được thích
6
Điểm
370
Tuổi
29
e đang soạn đề trắc nghiệm từ đề có sẵn,giờ phải chèn đầu câu hỏi và kết thúc cau hỏi một mã lệnh để phần mềm nhận diện. có cách nào chèn nhanh các mã lệnh này không ạ? mong các a chị giúp đỡ.Cụ thể e đã nêu trong file
 

File đính kèm

befaint

|||||||||||||
Tham gia ngày
6 Tháng một 2011
Bài viết
9,177
Được thích
10,649
Điểm
1,560
e đang soạn đề trắc nghiệm từ đề có sẵn,giờ phải chèn đầu câu hỏi và kết thúc cau hỏi một mã lệnh để phần mềm nhận diện. có cách nào chèn nhanh các mã lệnh này không ạ? mong các a chị giúp đỡ.Cụ thể e đã nêu trong file
Loay hoay mãi với cái nó --=0. Không biết kết quả có được không...
Bạn thử đoạn sau nhé.
Mã:
Sub SE()
Application.ScreenUpdating = False
Dim DT As Document, pg As Paragraph, T As String, tmp As String
Dim chk As String: chk = ":"
Set DT = ActiveDocument
On Error Resume Next
For Each pg In DT.Paragraphs
    T = pg.Range.Sentences(1)
    If Len(T) < 10 And Mid(T, Len(T) - 1, 1) = chk Or Trim(Mid(T, Len(T) - 2, 2)) = chk Then
        tmp = "#EQ" & vbCr & T & "#Q[x]" & vbCr
        DT.Content.Find.Execute FindText:=T, _
        ReplaceWith:=tmp, Replace:=wdReplaceAll
   End If
Next
DT.Range.InsertAfter "#EQ"
DT.Paragraphs(2).Range.Sentences(1).Delete
Application.ScreenUpdating = True
End Sub
 

dpsangcva

Thành viên mới
Tham gia ngày
9 Tháng mười một 2007
Bài viết
45
Được thích
26
Điểm
665
Tuổi
37
Xin code chép văn bản được gạch chân

Ví dụ mình có các câu trắc nghiệm dạng như này:

Câu 1: zzzzzzzzzzzzzzzzzzzzz
A. aaaaaaa B. bbbbbbbbbbbbbb
C.cccccccccc D. ddddddddđ
Câu 2: zzzzzzzzzzzzzzzzzzzzz
A. aaaaaaa B. bbbbbbbbbbbbbb
C.cccccccccc D. ddddddddđ
..........

Có code nào để chép các nội dung được gạch chân ra file mới không ạ?
Nếu có các bạn cho mình xin code với (gặp chừng vào trăm câu, chép lại té xĩu luôn ạ)

Cảm ơn nhiều nhiều!
 

File đính kèm

be09

TNMT_Đồng Nai
Tham gia ngày
9 Tháng tư 2011
Bài viết
8,887
Được thích
8,567
Điểm
560
Tuổi
62
Nơi ở
Biên Hòa, Đồng Nai
Ví dụ mình có các câu trắc nghiệm dạng như này:

Câu 1: zzzzzzzzzzzzzzzzzzzzz
A. aaaaaaa B. bbbbbbbbbbbbbb
C.cccccccccc D. ddddddddđ
Câu 2: zzzzzzzzzzzzzzzzzzzzz
A. aaaaaaa B. bbbbbbbbbbbbbb
C.cccccccccc D. ddddddddđ
..........

Có code nào để chép các nội dung được gạch chân ra file mới không ạ?
Nếu có các bạn cho mình xin code với (gặp chừng vào trăm câu, chép lại té xĩu luôn ạ)

Cảm ơn nhiều nhiều!
Muốn khỏi té xĩu thì chỉ cần làm đơn giản vầy thôi (nó sẽ Copy những từ, ngữ nào có chữ gạch chân (Underline) như những chữ ví dụ mà bạn tô đỏ, chứ nghĩ chi xa xôi, code két chi cho mệt.

1/ Chọn bất kỳ 1 từ, ngữ nào có chữ gạch chân (Underline).

2/ Vào Home, sang cuối cùng bên phải màn hình mục Select chọn vài cái tam giác màù đen và chọn Select Text with Similar Formatting, xong nhấn Ctrl+C (Copy).

3/ Sang File cần gửi đi, nhấn Paste (xong).

Bạn có thấy quá dễ dàng không.
 

dpsangcva

Thành viên mới
Tham gia ngày
9 Tháng mười một 2007
Bài viết
45
Được thích
26
Điểm
665
Tuổi
37
Muốn khỏi té xĩu thì chỉ cần làm đơn giản vầy thôi (nó sẽ Copy những từ, ngữ nào có chữ gạch chân (Underline) như những chữ ví dụ mà bạn tô đỏ, chứ nghĩ chi xa xôi, code két chi cho mệt.

1/ Chọn bất kỳ 1 từ, ngữ nào có chữ gạch chân (Underline).

2/ Vào Home, sang cuối cùng bên phải màn hình mục Select chọn vài cái tam giác màù đen và chọn Select Text with Similar Formatting, xong nhấn Ctrl+C (Copy).

3/ Sang File cần gửi đi, nhấn Paste (xong).

Bạn có thấy quá dễ dàng không.
Cảm ơn bạn!
Nhờ hướng dẫn của bạn và anh google, mình đã tìm ra code (mình đang cần cái này cho việc khác nữa)
Nó đây:
Mã:
[COLOR=#333333][FONT=&quot]Sub Demo()[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]Application.ScreenUpdating = False[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]Dim StrTxt As String, Doc As Document[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]With ActiveDocument.Range[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]  With .Find[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]    .ClearFormatting[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]    .Replacement.ClearFormatting[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]    .Text = ""[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]    .Replacement.Text = ""[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]    .Font.Underline = wd[/FONT][/COLOR][COLOR=#333333][FONT=&quot]UnderlineSingle[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]    .Format = True[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]    .Forward = True[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]    .Wrap = wdFindStop[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]    .Execute[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]  End With[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]  Do While .Find.Found[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]    StrTxt = StrTxt & .Text[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]    If Right(.Text, 1) <> vbCr Then StrTxt = StrTxt & vbCr[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]    .Collapse wdCollapseEnd[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]    .Find.Execute[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]  Loop[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]End With[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]Set Doc = Documents.Add[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]Doc.Range.Text = StrTxt[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]Application.ScreenUpdating = True[/FONT][/COLOR]
[COLOR=#333333][FONT=&quot]End Sub[/FONT][/COLOR]
 

Daunamthanh

Thành viên mới
Tham gia ngày
23 Tháng mười hai 2015
Bài viết
1
Được thích
0
Điểm
163
Tuổi
39
Em cũng muốn các ace hướng dẫn em làm các tiện ích, sau đó đóng gọi lại thành file exe. Khi mình cài đặt thì nó tự động cài lên thanh menu như menu file, format... trong menu sẽ chứa các tiện ích. Em xin cảm ơn.
 

lequocsuc3vvk

Thành viên mới
Tham gia ngày
1 Tháng mười một 2017
Bài viết
21
Được thích
0
Điểm
163
Tuổi
39
Cho em hỏi xíu nhé: Em có mẫu file word đính kèm ở trang 1, sau khi chuẩn hóa ra dạng ở trang 2.
Nhờ các anh chị giúp đỡ code dùm em
 

File đính kèm

bebi109

Thành viên mới
Tham gia ngày
17 Tháng tư 2010
Bài viết
17
Được thích
1
Điểm
365
Tuổi
34
Xin mọi người giúp cho. Em có 1 file A.docm giờ em muốn dùng vba để chuyển file này thành file A.dotm . Em thử ghi macro thao tác save as chọn lưu dưới dạng *.dotm, nhưng khi cho file A.dotm vào thư mục STARTUP thì k chạy được. Mong mọi người giúp đỡ. Em cảm ơn.
 
Top Bottom