Gán Heading (Styles) để xuất Mục lục (Table of contents) cho văn bản Word

Liên hệ QC
Em cũng thử chữ hoa không được mà ngại hỏi. May quá, bác tính thêm khả năng này. :D :D :D
Cảm ơn bác.
"Chương" là một cái mốc. Văn bản thì cái mốc phải xác định trước là chỉ chọn hoa hay thường thôi chứ sao lại cả 2 thứ.
Mấy cái này bạn phải chỉnh sửa trước khi bắt đầu áp dụng styles.
 
"Chương" là một cái mốc. Văn bản thì cái mốc phải xác định trước là chỉ chọn hoa hay thường thôi chứ sao lại cả 2 thứ.
Mấy cái này bạn phải chỉnh sửa trước khi bắt đầu áp dụng styles.
Tình hình là văn bản sẽ có trước bác ạ, VD các thể loại văn bản nhà nước, hợp đồng, ...
Mà có người viết hoa, viết thường không thể lường trước được.

Em thì muốn có code có tùy chọn, nhưng trong khi chưa viết được code thì tìm bằng wildcards cũng nhanh hơn nhiều rồi. Gọi là nông dân cơ giới hoá 1 tí.

Mà VBA không hiểu tiếng Việt nên khả năng em phải nghĩ đến món khác đây.
 
Tình hình là văn bản sẽ có trước bác ạ, VD các thể loại văn bản nhà nước, hợp đồng, ...
Mà có người viết hoa, viết thường không thể lường trước được.

Em thì muốn có code có tùy chọn, nhưng trong khi chưa viết được code thì tìm bằng wildcards cũng nhanh hơn nhiều rồi. Gọi là nông dân cơ giới hoá 1 tí.

Mà VBA không hiểu tiếng Việt nên khả năng em phải nghĩ đến món khác đây.
Tôi luôn chuẩn văn bản trước.
Bạn phải biết hai bên đồng ý kiểu hợp đồng như thế nào, và chuẩn được chọn là hoa hay thường.
Một văn bản chỉ có thể Chương hoặc CHƯƠNG thống nhất chứ không ai chấp nhận chỗ Chương và chỗ CHƯƠNG được.
 
Tôi luôn chuẩn văn bản trước.
Bạn phải biết hai bên đồng ý kiểu hợp đồng như thế nào, và chuẩn được chọn là hoa hay thường.
Một văn bản chỉ có thể Chương hoặc CHƯƠNG thống nhất chứ không ai chấp nhận chỗ Chương và chỗ CHƯƠNG được.
Nhưng nếu 2 chủ đầu tư khác nhau thì Chương hay CHƯƠNG sẽ khác tùy cách viết của họ, tất nhiên là đồng bộ xuyên suốt theo mẫu của từng bên thôi bác.

Còn tùy chọn hoa/thường sẽ do file của chủ đầu tư ra sao mà mình chọn wildcards.

Mở rộng hơn thì văn bản luật sẽ cần hơn, với 5, 6, ... 10 headings, và hàng trăm điều.

Chủ yếu là em muốn tạo mục lục từ 1 file word có sẵn mà đang dùng hoàn toàn styles normal ấy mà.
 
Trường hợp của bạn chính là một trong những lý do mà tôi rất ít khi dùng macro chạy tự động cho Word.
Hợp đồng thì cái nào riêng biệt ra cái nấy. Tôi không bao giờ dùng một macro đa năng, "sử lý mọi kiểu".
 
Những chức năng tương tự thì gom vào 1 thôi bác ạ. Có thể gom trên tùy chọn đặt tại userform, hoặc tách 2 nút command trên userform cho 2 Marco riêng. Tùy khả năng code thôi.

VD hàm match với tùy chọn -1, 0, +1 nó đa năng ấy bác, chứ tách 3 hàm match123 thì không xịn lắm.

Hợp đồng mẫu thì nó lung tung điều, mấy chục trang, có những hợp đồng làm ra chỉ để hợp pháp hóa, nên em phải xóa bớt nhiều điều, ngắn nhất có thể, không có mục lục cứ phải rà soát đầu đến cuối. Bệnh lười bác ạ.

Rồi văn bản nhà nước thay đổi, cũng không làm mục lục, lại lười tiếp. Multi lười. :wallbash: :wallbash: :wallbash:
 
Các bác ạ,
Các văn bản nhà ta được định dạng tương đối rõ ràng, tuy nhiên không luôn dùng Heading để tạo mục lục, tra cứu khó khăn.
Do đó, nhờ các bác bớt chút thời gian code cho em cũng như mọi người để tiện hơn trong việc tra cứu.

Yêu cầu là duyệt qua các Tiêu đề (hiện nhận dạng bằng in đậm và các chữ "Phần", "Điều", ... bằng Unicode) và gán cho nó heading phù hợp để xuất Mục lục như trang đầu.

Em chỉ đưa lên file mẫu để có ý tưởng, vì các văn bản luật, nghị định nó bố trí thêm Chương, Mục, Phần, Điều, ... nên hơi phức tạp. Khả năng là sẽ chỉnh dần dần cho phù hợp từng thể loại.

Hiện em vẫn dùng Format Painter làm thủ công, nên các bác có thời gian cứ từ từ ngâm cứu ạ.
Code riêng cho file này tôi nghĩ cũng dễ mà.
Lấy 2 từ đầu của paragraph: nếu là "PHẦN" và 1 number theo sau thì áp dụng heading 1 cho nó; Nếu là "Điều" và 1 number theo sau thì áp dụng heading 2.
 
Code riêng cho file này tôi nghĩ cũng dễ mà.
Lấy 2 từ đầu của paragraph: nếu là "PHẦN" và 1 number theo sau thì áp dụng heading 1 cho nó; Nếu là "Điều" và 1 number theo sau thì áp dụng heading 2.
Sẽ phải update dần dần bác ạ, vì mỗi đơn vị làm kiểu riêng. Nhiều dạng tiêu đề lắm, còn dạng "Phần" nó nằm sẵn trong heading nữa (kiểu numbering ấy bác), khi đó sẽ không dùng wildcards được.

Tạm thời em tìm cũng ổn, chủ động được. Còn code thì để rảnh em luyện thêm.
 
Trường hợp của bạn chính là một trong những lý do mà tôi rất ít khi dùng macro chạy tự động cho Word.
Hợp đồng thì cái nào riêng biệt ra cái nấy. Tôi không bao giờ dùng một macro đa năng, "sử lý mọi kiểu".
Đơn giản là để "chỉnh trang" lại file văn bản luật tải trên mạng về cho dễ xem thôi bác.
--
File tải trên mạng về
screenshot_1.png

Sau khi "chỉnh trang" lại
screenshot_2.png


Sau khi chỉnh lại thì muốn xem chương nào điều nào chỉ cần bấm vào xem thôi, đỡ phải kéo chuột nhiều bị hư như chuột của thớt.
 
Chứng tỏ viên chức trình độ tin học văn phòng kém quá. Văn bản pháp quy tung lên mạng mà tè le tùm lum. Buồn nhở.
 
Chứng tỏ viên chức trình độ tin học văn phòng kém quá. Văn bản pháp quy tung lên mạng mà tè le tùm lum. Buồn nhở.
Công chức cấp càng thấp thì khả năng tin học càng cao. Theo đó, nv quèn thì IT ngon hơn phó, trưởng, nv huyện, tỉnh, ngon hơn TƯ. Mấy tay gõ vb này là nv TƯ đấy.
 
Công chức cấp càng thấp thì khả năng tin học càng cao. Theo đó, nv quèn thì IT ngon hơn phó, trưởng, nv huyện, tỉnh, ngon hơn TƯ. Mấy tay gõ vb này là nv TƯ đấy.
Cũng do một số người cấp cao nhiều việc quá, thi thoảng khát nước mà bê nhầm chai cồn nên về mệt, không tỉnh táo bác ạ.
Hehe, trước giờ em có thói quen muốn xem gì là về Mục lục rồi chọn tiếp. Cái bảng outline bên trái em biết mà chưa bao giờ dùng. Toàn quay lại mục lục rồi tìm tiếp. :wallbash: :wallbash::wallbash:
Chứng tỏ viên chức trình độ tin học văn phòng kém quá. Văn bản pháp quy tung lên mạng mà tè le tùm lum. Buồn nhở.
Hình như có 1 giai đoạn Firefox, Chrome đã phát triển nhiều, nhưng hỗ trợ kê khai thuế vẫn phải dùng Internet Explorer.
Em nhớ mang máng thế.
 
Lần chỉnh sửa cuối:
Công chức cấp càng thấp thì khả năng tin học càng cao. Theo đó, nv quèn thì IT ngon hơn phó, trưởng, nv huyện, tỉnh, ngon hơn TƯ. Mấy tay gõ vb này là nv TƯ đấy.
Mấy tay cấp cao và TƯ không cần biết nhiều, họ có trợ lý.
Hoặc gặp nhầm trợ lý chỉ biết nịnh hót. Hoặc do họ khó tính quá, trợ lý không dám đẹ nghị cải tiến.

Trường hợp "không cần biết nhiều, đã có trự lý lo" rất phổ biến ở Âu Mẽo. Bạn nào nhớ cái sì-căn-đan Yahoo bổ nhiệm gac giám đốc không có gốc IT? Đúng ra thì gã ta cũng làm việc được, nhưng bị dư luận khó khăn cho nên phải bị thay.

Chứng tỏ viên chức trình độ tin học văn phòng kém quá. Văn bản pháp quy tung lên mạng mà tè le tùm lum. Buồn nhở.
Như tôi đã giải thích cho bạn kia. Đó là trình độ quản lý của cấp trên chứ không phải nhiệm vụ cấp trên là phải biết Tin Học VP.
Cấp trên quản lý giỏi thì người trợ lý có nhiêu tự tin, họ sẽ biết tự học cách quản lý văn bản.

Tôi đi làm tư vấn gặp cái này hoài.
 
Lần chỉnh sửa cuối:
Mấy tay cấp cao và TƯ không cần biết nhiều, họ có trợ lý.
Hoặc gặp nhầm trợ lý chỉ biết nịnh hót. Hoặc do họ khó tính quá, trợ lý không dám đẹ nghị cải tiến.

Trường hợp "không cần biết nhiều, đã có trự lý lo" rất phổ biến ở Âu Mẽo. Bạn nào nhớ cái sì-căn-đan Yahoo bổ nhiệm gac giám đốc không có gốc IT? Đúng ra thì gã ta cũng làm việc được, nhưng bị dư luận khó khăn cho nên phải bị thay.
Cũng nằm trong cái chung tôi đã nói đó bác. NV quèn gõ văn bản ở địa phương thì ngon hơn "trợ lý" ở TƯ mà.
 
Cũng nằm trong cái chung tôi đã nói đó bác. NV quèn gõ văn bản ở địa phương thì ngon hơn "trợ lý" ở TƯ mà.
Chưa chắc. Tôi tiếp xúc nhiều nơi, nhiều cấp bậc rồi.
Bạn quên nguyên tắc "cây kim trong túi (người giỏi thì như cây kim, bỏ bậy trong áo thì có lúc nó đâm)" rồi. Nhân viên quèn mà giỏi THVP thì họ đâu có cam phận làm nhân viên quèn. Mấy trự lên GPE hỏi bài, kiến thức và kinh nghiệm như hạch mà cũng phụ trách đầu này đầu nọ.

Nhớ ngày nào có câu chuyện một thằng từ "không biết gì", sau 6 năm làm việc với SAP đã lên mặt "chất xám" này nọ.
 
Sẽ phải update dần dần bác ạ, vì mỗi đơn vị làm kiểu riêng. Nhiều dạng tiêu đề lắm, còn dạng "Phần" nó nằm sẵn trong heading nữa (kiểu numbering ấy bác), khi đó sẽ không dùng wildcards được.

Tạm thời em tìm cũng ổn, chủ động được. Còn code thì để rảnh em luyện thêm.
Bạn chạy thử code này xem. Trước khi chạy, xóa hết khúc liệt kê ở đầu dự định làm mục lục trong file Word ở bài #1 của bạn đi.

Chữ "phần" có nằm trong numbering không sao, cũng chạy đúng
 

File đính kèm

  • WordHeadingVBA_cantl.xlsm
    21.6 KB · Đọc: 10
Bạn chạy thử code này xem. Trước khi chạy, xóa hết khúc liệt kê ở đầu dự định làm mục lục trong file Word ở bài #1 của bạn đi.

Chữ "phần" có nằm trong numbering không sao, cũng chạy đúng
Được rồi bác ạ, với file này em muốn thêm bao nhiêu Heading là chỉ cần lồng thêm điều kiện trong hàm if là được phải không bác?
 

File đính kèm

  • 1684917893477.png
    1684917893477.png
    2.9 KB · Đọc: 4
Được rồi bác ạ, với file này em muốn thêm bao nhiêu Heading là chỉ cần lồng thêm điều kiện trong hàm if là được phải không bác?
Thêm ElseIf cho mỗi heading, tuy nhiên mọi việc phải tùy cơ ứng biến.
 
Web KT
Back
Top Bottom