VBA trong MS Word

Liên hệ QC

tranduyquang2511

Thành viên mới
Tham gia
22/12/11
Bài viết
8
Được thích
1
ACE cho hỏi lập trình VBA cho MS Word được không nhỉ? Mình có file mẫu bằng Word, cần điền vào rồi in ra. Mình hay làm ở Excel, nhưng khổ cái file Word này dài, lại có nhiều bảng biểu. Nên để chuyển sang excel mất công quá. Nên mong ACE biết chỉ mình với nha. Cảm ơn!
 
ACE cho hỏi lập trình VBA cho MS Word được không nhỉ? Mình có file mẫu bằng Word, cần điền vào rồi in ra. Mình hay làm ở Excel, nhưng khổ cái file Word này dài, lại có nhiều bảng biểu. Nên để chuyển sang excel mất công quá. Nên mong ACE biết chỉ mình với nha. Cảm ơn!
Muốn cái gì thì bạn đưa cái File mẫu lên và nêu rõ vấn đề cần, để các thành viên trợ giúp, vì sao lại nói là excel mất công quá?
Nếu nói về định dạng, bảng biểu, tính toán thì thì Excel là tuyệt vời nhất không có phần mềm nào địch lại nó, do bạn chưa hiểu hết tính năng nên nêu vậy thôi.
 
Muốn cái gì thì bạn đưa cái File mẫu lên và nêu rõ vấn đề cần, để các thành viên trợ giúp, vì sao lại nói là excel mất công quá?
Nếu nói về định dạng, bảng biểu, tính toán thì thì Excel là tuyệt vời nhất không có phần mềm nào địch lại nó, do bạn chưa hiểu hết tính năng nên nêu vậy thôi.
Em gửi 1 trang nhờ bác xem giúp. Các trang khác cũng fill tương tự thôi. Ở excel đúng là tiện và dễ, nhưng giờ không lẽ em phải chuyển văn bản định dạng các kiểu từ Word sang excel? Em bắt đầu tìm hiểu cách để xác định vị trí (tương tự như địa chỉ ô trong excel) để gán dữ liệu giá trị.
 

File đính kèm

  • 1. Cong van Cong trinh.doc
    40 KB · Đọc: 21
Em gửi 1 trang nhờ bác xem giúp. Các trang khác cũng fill tương tự thôi. Ở excel đúng là tiện và dễ, nhưng giờ không lẽ em phải chuyển văn bản định dạng các kiểu từ Word sang excel? Em bắt đầu tìm hiểu cách để xác định vị trí (tương tự như địa chỉ ô trong excel) để gán dữ liệu giá trị.
Tham khảo cách người ta làm ở Link sau:
https://www.giaiphapexcel.com/diendan/search/212588/?q=bi%C3%AAn+b%E1%BA%A3n+nghi%E1%BB%87m+thu&c[title_only]=1&o=date
 
Cảm ơn anh. Link này cũng là quay về soạn bảng biểu bằng excel. Em đang tìm cách từ một danh sách có sẵn ở excel, rồi fill vào file word và in ra. Tính năng mail merge word ấy anh. Nhưng vì địa chỉ trong word khác exel, nên em chưa biết làm sao để gán dữ liệu.
 
Cho hỏi tôi có đoạn code này muốn lưu vào trong word để sau này sử dụng;
Thì phải làm sao khi mở word lên nó có nút nào đó để click vào để sử dụng nó ạ

Sub Sua_Math_lech_dong (ByVal control As Office.IRibbonControl)
Selection.Font.Position = 0 'Chon Position = Normal
Application.Run MacroName:="MTCommand_TeXToggle"
With Selection.Find
.text = "\["
.Replacement.text = "${"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchWildcards = False
.Execute Replace:=wdReplaceAll
End With
With Selection.Find
.text = "\]"
.Replacement.text = "}$"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchWildcards = False
.Execute Replace:=wdReplaceAll
End With
Application.Run MacroName:="MTCommand_TeXToggle"
End Sub
 
Cho hỏi tôi có đoạn code này muốn lưu vào trong word để sau này sử dụng;
Thì phải làm sao khi mở word lên nó có nút nào đó để click vào để sử dụng nó ạ
Code làm việc cụ thể: tìm \[ và thay bằng ${, tìm ]\ và thay bằng }$.

Bây giờ bạn muốn:
1. Dùng code trong mỗi trong tập tin bất kỳ được mở?

Nếu thế có thể tạo add-in, thêm menu vào Ribbon. Hãy tìm đọc trên GPE, có nhiều rồi.

2. Dùng code trong 1 tập tin cố định, cụ thể?

Nhìn code có vẻ đây là thêm menu vào Ribbon dùng XML

Nếu thế thì đọc hướng dẫn của siwtom

Ở bài #7 tôi đã viết rất chi tiết cách tạo menu. Có cả các vd. về các kiểu menu.

https://www.giaiphapexcel.com/diend...enu-tự-tạo-trong-excel-2007.36385/post-454302

Ở bài #10 tôi đã giải thích cặn kẽ dạng của các chuỗi, cách tạo và cả code sẵn để tạo chuỗi cho Custom UI Editor

https://www.giaiphapexcel.com/diend...enu-tự-tạo-trong-excel-2007.36385/post-572751

----------------
Thực ra chả phải tìm ở đâu xa. Bản thân tôi bước đầu tiên luôn thử tìm ở ngay nguồn, tức Microsoft

http://msdn.microsoft.com/en-us/library/dd910855(v=office.12).aspx

Có thể đọc về cấu trúc của XML. Có thể đọc về các element cụ thể. Vd. editBox: Elements --> editBox (Edit Box):

http://msdn.microsoft.com/en-us/library/dd925058(v=office.12).aspx
-------------
Trong trường hợp của bạn thì vd. nội dung XML:
Mã:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" >
<ribbon> 
    <tabs>
        <tab id="MyCustomTab" label="Find and replace" insertAfterMso="TabHome">
            <group id="myGroup" label="Nho&#769;m th&#432;&#769; 1">
                <button id="FaR" label="Hic hic" size="large" onAction="find_and_replace" />
            </group>
        </tab>
    </tabs>
</ribbon>
</customUI>
Và dùng code của bạn trong sub find_and_replace. Tất nhiên phải "tắt" Application.Run MacroName:="MTCommand_TeXToggle" vì bạn không nói nên tôi không biết MTCommand_TeXToggle nó là gì và ở đâu.
 
1541918084920.png
Bài đã được tự động gộp:

MTCommand_TeXToggle là chyển mathype về text và ngược lại
 
Em hỏi #6 Bên Word! Các anh hướng dẫn bên Excel phải không?
Có áp dụng trong word 2013 được không?
Em mới tham gia nên còn non về VBA
Mong được sự giúp đỡ! Chân thành cảm ơn
 
Em hỏi #6 Bên Word! Các anh hướng dẫn bên Excel phải không?
Có áp dụng trong word 2013 được không?
Em mới tham gia nên còn non về VBA
Mong được sự giúp đỡ! Chân thành cảm ơn
CODE NÀY DÙNG LÀM GÌ BẠN HÌNH NHƯ CHUYỂN CÔNG THỨC TOÁN VỀ TEXT AH
 
Em hỏi #6 Bên Word! Các anh hướng dẫn bên Excel phải không?
Tôi đã hướng dẫn cho bạn bên word. Nếu Excel thì còn nói gì nữa.


Về add-in thì tôi đã viết rất rõ: hãy tìm đọc và làm add-in.

Về XML ...

Nếu vẫn chưa hiểu thì: mở tập tin mong muốn -> ghi lại ở dạng docm, vd. "hic hic.docm" -> đóng tập tin -> mở Custom UI Editor -> chọn mở -> duyệt tới "hic hic.docm" -> dán (ở chỗ nào thì đọc bài của siwtom, tôi không bỏ công ra nữa, tự đọc nhé) nội dung XML tôi đưa ở bài trước -> nhấn Save -> đóng Custom UI Editror -> mở hic hic.docm -> Alt + F11 -> Insert -> Module -> dán code sau vào Module1 -> lưu lại tập tin rồi đóng lại. -> mở lại tập tin -> bên cạnh thẻ Home đã có thẻ "Find and Replace"

Mã:
Sub find_and_replace(control As IRibbonControl)
'    Selection.Font.Position = 0 'Chon Position = Normal
'    Application.Run MacroName:="MTCommand_TeXToggle"
    With Selection.Find
        .Text = "\["
        .Replacement.Text = "${"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchWildcards = False
        .Execute Replace:=wdReplaceAll
    End With
    With Selection.Find
        .Text = "]\"
        .Replacement.Text = "}$"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchWildcards = False
        .Execute Replace:=wdReplaceAll
    End With
'    Application.Run MacroName:="MTCommand_TeXToggle"
End Sub
 
Cảm ơn hackVBA đã chia sẽ. Nhân tiện cho hỏi thêm cũng code vừa rồi khi chuyển ABCD trở thành $ABCD$ thì khắc phục sau ạ
Bài đã được tự động gộp:

Sub export(ByVal control As IRibbonControl)
silent = False
Call Suadong
End Sub
Public Sub Suadong(ByVal control As Office.IRibbonControl)
Selection.Font.Position = 0 'Chon Position = Normal
Application.Run MacroName:="MTCommand_TeXToggle"
With Selection.Find
.Text = "\["
.Replacement.Text = "${"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchWildcards = False
.Execute Replace:=wdReplaceAll
End With
With Selection.Find
.Text = "\]"
.Replacement.Text = "}$"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchWildcards = False
.Execute Replace:=wdReplaceAll
End With
With Selection.Find
.Text = "align"
.Replacement.Text = "matrix"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchWildcards = False
.Execute Replace:=wdReplaceAll
End With
Application.Run MacroName:="MTCommand_TeXToggle"
End Sub
 

File đính kèm

  • ABCD.docx
    14 KB · Đọc: 6
Lần chỉnh sửa cuối:
Cảm ơn hackVBA đã chia sẽ. Nhân tiện cho hỏi thêm cũng code vừa rồi khi chuyển ABCD trở thành $ABCD$ thì khắc phục sau ạ
Bài đã được tự động gộp:

Sub export(ByVal control As IRibbonControl)
silent = False
Call Suadong
End Sub
Public Sub Suadong(ByVal control As Office.IRibbonControl)
Selection.Font.Position = 0 'Chon Position = Normal
Application.Run MacroName:="MTCommand_TeXToggle"
With Selection.Find
.Text = "\["
.Replacement.Text = "${"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchWildcards = False
.Execute Replace:=wdReplaceAll
End With
With Selection.Find
.Text = "\]"
.Replacement.Text = "}$"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchWildcards = False
.Execute Replace:=wdReplaceAll
End With
With Selection.Find
.Text = "align"
.Replacement.Text = "matrix"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchWildcards = False
.Execute Replace:=wdReplaceAll
End With
Application.Run MacroName:="MTCommand_TeXToggle"
End Sub
GUI LAI BAN
 

File đính kèm

  • addin-word.rar
    94.3 KB · Đọc: 14
Tôi có file mẫu phiếu trắc nghiệm TNMaker 40 câu
Mỗi khi trộn đề tôi muốn chép nó vào file word đang mở của tôi
Tôi chỉ làm được với Document1 mà thôi
Xin chỉnh code này sau cho chạy các Document có tên khác nhau:

Sub Macro1()
ChangeFileOpenDirectory "D:\Mau_TN40\"
Documents.Open FileName:="TNMaker40.docx", ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:=""
Selection.WholeStory
Selection.Copy
Windows("Document1").Activate
Selection.PasteAndFormat (wdFormatOriginalFormatting)
Selection.TypeBackspace
Windows("TNMaker40.docx").Activate
ActiveDocument.Save
Documents.Open FileName:="TNMaker40.docx", ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:=""
Selection.WholeStory
Selection.PasteAndFormat (wdFormatOriginalFormatting)
Selection.TypeBackspace
ActiveDocument.Save
End Sub
 

File đính kèm

  • TNMaker40.docx
    2 MB · Đọc: 11
gửi bạn xem thử
 

File đính kèm

  • addin-word.rar
    96 KB · Đọc: 13
Tôi có file word có công thức toán bằng Mathype
Tôi muốn các công thức Mathype thành công thức Equation trong word thì phải làm sao
xin chỉ giúp code với
 

File đính kèm

  • mau.docx
    29.8 KB · Đọc: 6
Web KT
Back
Top Bottom