Chuyển font sang unicode trên excel

Liên hệ QC
Cám ơn Bạn, chương trình tiện ích hay và chạy khá nhanh. Nhưng có trường hợp này tôi thấy chưa chuyển được là trong 1 cell dùng 2 font khác nhau thì không chuyển được, ví dụ câu: Ủy viên hội đồng mà chữ Ủ dùng font .VntimeH, còn lại dùng .Vntime. Nếu tiện ích chuyển được font trong trường hợp trên thì hay quá.

Thank Bạn nhiều!

Trên 1 cells nhiều loại font chữ chương trình Rev.07 tự động nhận diện và đổi font được rồi
do đó chuyển font sang Unicode câu "Ủy viên hội đồng mà chữ Ủ dùng font .VntimeH, còn lại dùng .Vntime." là chuyện nhỏ !
Bạn có thể down load chương trình mới để sử dụng.
 
Bản mới "ChuyenFontUnicode-R4" đã chuyển được font VietWareX sang Uni - Cảm ơn Bạn DotNhan

Đúng rồi, đây là nhược điểm chính của chương trình.
Khi người nào đó đã định dạng font khác với font gốc thì chương trình sẽ bó tay. Tôi nghĩ để nhận dạng được font gốc của từng cell là quá khó!

Ít ra trên máy tính của bạn thể hiện được tiếng Việt thì Chương trình mới chuyển được !
 
Lần chỉnh sửa cuối:
Ít ra bạn cũng phải hiểu được tiếng Việt thì Chương trình mới chuyển được !
Ẹc... Ẹc... Đó là vì bạn phát biểu rằng chương trình của bạn có khả năng nhận dạng được bảng mã cơ mà ---> Thực tế thì đâu phải vậy... cùng lắm nó chỉ biết được tôi đã định dạng cho cell là font gì mà thôi
TỰ ĐỘNG NHẬN DẠNG BẢNG MÃ à... Hic... Đâu có dễ nhai!
 
Bạn DoNhan đã bỏ công thiết kế một tiện ích như vậy để tặng mọi người. Một lần nữa cảm ơn Bạn.

TỰ ĐỘNG NHẬN DẠNG BẢNG MÃ à... Hic... Đâu có dễ nhai!
Hình như chưa có một chương trình nào làm được, chắc là vì không cần thiết cho lắm. Tôi nghĩ nếu muốn làm, chương trình phải có thêm thuật toán kiểm tra chính tả từng cell, nếu không có lỗi chính tả -> chuyển font; nếu có lỗi chính tả -> định dạng lại font khác, lại kiểm tra -> định dạng ..... đến khi hết lỗi chính tả mới chuyển font. Nếu như thay hết cả 4 loại font trên mà vẫn còn lỗi chính tả (ngôn ngữ khác hoặc font khác hoặc ... viết sai chính tả) thì bỏ qua ô đó. Quá phức tạp!
 
Chủ đề này nghe chừng vẫn còn nguyên độ nóng đây!
Một thời gian trước tôi đã thử bắt đầu viết một chương trình sửa lỗi chính tả nhúng trong VBA để làm công cụ giúp chức năng đoán mã được tốt hơn thay vì sử dụng thuộc tính Phông chữ của đổi tượng nhưng do bận rộn và bế tắc về ngôn ngữ nên tôi tạm thời bỏ dở và dự kiến sẽ làm trong thời gian khác phù hợp.
Xin lạm bàn một chút về phương pháp đoán mã để nếu các bạn quan tâm, biết đâu chúng ta có thể xây dựng được một ứng dụng có khả năng này.
Cách thức đoán mã tiếng Việt là một trong những điểm khó nhất đối với lập trình viên mà đôi khi khó đến mức gần như không thể xây dựng được giải thuật trí tuệ nhân tạo tối ưu; nguyên nhân chính là do sự đa dạng của các bảng mã và sự tùy ý trong việc sử dụng các phông chữ hiển thị (làm cho các thuật toán sử dụng phông chữ để đoán mã trở nên vô hiệu đối với những bảng mã không có nguyên tắc cơ sở).
Chẳng hạn đa phần với TCVN - ABC người ta dùng bộ phông .Vn*** để hiển thị vì thế có thể khai thác thuộc tính này để đoán mã TCVN-ABC. Nhóm các bảng mã này cũng có kha khá và tương đối phổ biến với các bảng mã chính (VNI Windows, TCVN-ABC).
Nhưng khi gặp VNI-DOS thì người ta lại dùng các phông chữ mang đặc điểm địa danh như Can Tho, Thanh Hoa .... để hiển thị (Vậy thì dùng cái gì?)
Nếu không kể thêm sự "tùy ý" của người dùng khi gõ theo thói quen (ví dụ trong 1 ô, đang dùng Unicode, họ gõ thêm 1 chữ nào đó bằng phần mềm và bảng mã quen dùng, nếu không hiện chữ đúng họ chọn mấy chữ đó trong ô và đổi phông chữ để hiện tiếng Việt).
Mặc dù Excel cho ta cơ hội để làm việc với thuộc tính phông chữ của từng ký tự trong Ô nhưng nếu vẫn chỉ dựa vào phông chữ để đoán mã thì vẫn thua vì ta chỉ làm được với những bảng mã phổ biến. Không kể là tốc độ sẽ cực thấp.
Ngoài ra, còn cách khác có thể giúp đoán mã tiếng VIệt nhờ việc quan sát những gì hiển thị ra ngoài màn hình nhờ các công cụ phân tích sử dụng nhận dạng ảnh, nếu máy tính của ta có thể hiển thị được tiếng Việt thì khả năng đoán trúng của công cụ là xấp xỉ 99,99% và nó không cần biết bạn sử dụng phông nguồn, bảng mã nào, chỉ cần đặc tả bạn cần chuyển sang mã đích gì. Tuy nhiên, tốc độ thì hơn rùa bò một chút.
Bản thân tôi cũng đã thử một biện pháp nữa là, thực hiện chuyển mã thử sang các bảng mã khác nhau và so sánh với từ điển hoặc bảng danh mục từ được xây dựng theo nguyên lý kết hợp của tiếng Việt, bảng test nào có ít lỗi nhất thì đưa lại kết quả đoán là bảng mã đó. Nhưng cách này có nhiều yếu điểm về tốc độ và danh sách bảng mã được nhúng vào chương trình, chưa kể trường hợp không giải quyết được việc có nhiều bảng mã trong cùng 1 ô.

Như vậy, tùy theo yêu cầu của người dùng, cần nhanh hay cần chính xác mà họ có thể chọn cách kiểm tra từng ký tự hay thuộc tính tổng thể của Ô.
Tóm lại là trong môi trường trăm hoa đua nở kết hợp với sự tuỳ tiện, sẽ không bao giờ có được công cụ giúp ta ngồi chơi xơi nước và nó tự động chuyển tất cả về 1 bảng mã.
Nói khác hơn, để có lý do làm khó tác giả thì không thiếu ví dụ thực tế mà siêu lập trình viên cũng bó tay. Nhưng xét về tổng quát, ta có thể làm được nhiều việc nhờ kết
hợp các cách giải quyết khác nhau để người dùng có thể mất càng ít thời gian biên tập lại càng tốt.
Tôi thiết nghĩ, các bạn cùng tham gia thảo luận về phương án này thì chắc sẽ đỡ hơn. VÍ dụ:
1. Cùng hỗ trợ thiết kế thuật toán chuyển mã sao cho tối ưu về tốc độ.
2. Cùng thiết kế thuật toán đoán mã sao cho tốc độ và độ chính xác cao nhất.
...
Như vậy, ta sẽ bớt tranh luận và cũng không cần phải thỉnh thoảng lại giới thiệu tôi có cái này, anh có cái kia làm cho người dùng loạn nhịp.
THiết nghĩ như thế có được không ạ? Nếu tôi có vô tình làm ai buồn, thì thành thật xin lỗi, nếu bài viết có vi phạm nội quy thì mong MOD xóa giùm.
Rất chân thành!
 
MÌNH ĐÃ chuyển đổi thành công, cám ơn bạn rất nhiều.
 
Sao tôi chuyển không được nhỉ ?
nếu dùng 2 cái file trên cùng
 
Trên 1 cells nhiều loại font chữ chương trình Rev.07 tự động nhận diện và đổi font được rồi
do đó chuyển font sang Unicode câu "Ủy viên hội đồng mà chữ Ủ dùng font .VntimeH, còn lại dùng .Vntime." là chuyện nhỏ !
Bạn có thể down load chương trình mới để sử dụng.

Ủng hộ Bạn phát triển chương trình ngày càng hoàn thiện hơn. Trường hợp tôi nêu ra hay gặp đấy bởi vì nhiều người quen dùng theo TCVNTime3 phải dùng kiểu đó không như dùng Unicode, ngoài ra trong 1 cell dòng chữ còn mấy loại màu, đậm, nghiêng,... khác nhau.
 
Chuyện bà cụ quét rác
Tôi ở trong một con hẻm, vì hẻm nhỏ nên xe chở rác không vào được. Từng nhà mang rác tập trung ra đầu ngỏ, còn con hẻm không ai quét dọn. Có bà cụ từ quê ra ở với con, hàng ngày quét rác trước nhà, thấy con hẻm dơ quá cũng quét luôn, từ đó con hẻm được sạch sẽ. Lâu rồi thành thói quen, trong tâm lý mọi người đều nghỉ rằng con hẻm phải sạch sẽ là đương nhiên và bà cụ là người phải có trách nhiệm quét dọn; thậm chí có người thấy bao thuốc lá, vỏ bánh kẹo trên đường thì lại trách cứ bà cụ không giữ vệ sinh con hẻm.
Một hôm bà cụ bị té xẹp đốt sống phải nằm một chỗ, con cụ đưa về quê cho tiện sinh hoạt. Con hẻm lại dơ bẩn như xưa, nhưng không còn bà cụ để mà trách cứ !
Cuộc sống có giá trị nhân văn nhờ những bà cụ quét rác.
 
Cái tiện ích của anh rất hay, hay hơn nữa nếu anh mở mã nguồn các hàm chuyển đổi bảng mã và các thao tác chuyển đổi để sản phẩm hữu dụng hơn nữa.

Cám ơn!
 
Ẹc... Ẹc... Đó là vì bạn phát biểu rằng chương trình của bạn có khả năng nhận dạng được bảng mã cơ mà ---> Thực tế thì đâu phải vậy... cùng lắm nó chỉ biết được tôi đã định dạng cho cell là font gì mà thôi
TỰ ĐỘNG NHẬN DẠNG BẢNG MÃ à... Hic... Đâu có dễ nhai!

Công việc này làm được bác ndu ạ, hạn chế 3 kiểu gõ Unicode, Vni, TCVN là ổn!
 
Công việc này làm được bác ndu ạ, hạn chế 3 kiểu gõ Unicode, Vni, TCVN là ổn!
Tôi nhận thấy các chương trình gọi là "NHẬN DẠNG BẢNG MÃ" hầu hết đều xem người ta đang dùng font gì (chứ hổng phải mã ấy là gì)
Ví dụ: Tôi dùng bảng mã TCVN, font .VnArial... gõ xong, tôi định dạng lại cell vừa gõ thành font Arial thì có chương trình nào nhận biết được BẢN CHẤT không?
Nếu thầy cho rằng làm được, xin cho tôi xem đoạn code ấy đi (thật sự tôi chưa từng nghĩ có thể làm được... hoặc nếu được cũng phải đầu tư rất lớn)
 
Tôi nhận thấy các chương trình gọi là "NHẬN DẠNG BẢNG MÃ" hầu hết đều xem người ta đang dùng font gì (chứ hổng phải mã ấy là gì)
Ví dụ: Tôi dùng bảng mã TCVN, font .VnArial... gõ xong, tôi định dạng lại cell vừa gõ thành font Arial thì có chương trình nào nhận biết được BẢN CHẤT không?
Nếu thầy cho rằng làm được, xin cho tôi xem đoạn code ấy đi (thật sự tôi chưa từng nghĩ có thể làm được... hoặc nếu được cũng phải đầu tư rất lớn)

Không cần bác ạ, em sẽ xây dựng đoạn code nhận dạng toàn bộ mã. Bác xem qua ở đây, cần kết nối các hàm này là được thôi:

http://www.giaiphapexcel.com/forum/...Hàm-xác-định-bộ-gõ-Unicode-hay-VNI&highlight=
 
Lần chỉnh sửa cuối:
Không cần bác ạ, em sẽ xây dựng đoạn code nhận dạng toàn bộ mã. Bác xem qua ở đây, cần kết nối các hàm này là được thôi:

http://www.giaiphapexcel.com/forum/...Hàm-xác-định-bộ-gõ-Unicode-hay-VNI&highlight=
Ẹc... Ẹc... Nói không bằng thí nghiệm
Thầy thử gõ chữ THÔNG BÁO (font Arial, bảng mã Unicode) vào cell A1 rồi dùng hàm của thầy xác định xem kết quả là gì nhé?
 
Ẹc... Ẹc... Nói không bằng thí nghiệm
Thầy thử gõ chữ THÔNG BÁO (font Arial, bảng mã Unicode) vào cell A1 rồi dùng hàm của thầy xác định xem kết quả là gì nhé?

Đúng là có vấn đề thật, lần trước em Test vô thì ổn
 
Đúng là có 1 số chữ tiếng Việt giữa UNicode và TCVN giống nhau nên khó phân biệt được.
 
Tôi nhận thấy các chương trình gọi là "NHẬN DẠNG BẢNG MÃ" hầu hết đều xem người ta đang dùng font gì (chứ hổng phải mã ấy là gì)
Ví dụ: Tôi dùng bảng mã TCVN, font .VnArial... gõ xong, tôi định dạng lại cell vừa gõ thành font Arial thì có chương trình nào nhận biết được BẢN CHẤT không?
Nếu thầy cho rằng làm được, xin cho tôi xem đoạn code ấy đi (thật sự tôi chưa từng nghĩ có thể làm được... hoặc nếu được cũng phải đầu tư rất lớn)
Em đồng ý với quan điểm của anh. Nếu thực sự cần một phần mềm chuyên nhận dạng các bảng mã font để rồi tự chuyển đổi lấy thì các diễn đàn về lập trình đã phát triển rồi, vì thực sự rất mất thời gian và khó. Thay vì chúng ta bỏ thời gian ra để phát triển một phần mềm như vậy thì chúng ta tập một thói quen chuẩn hoá trong việc nhập văn bản. Nếu nhập một văn bản word hoặc excel mỗi cell cứ set một font khác nhau, không tuân theo quy tắc gì cả thì còn j gọi là chuẩn nữa. Điển hình như việc tất cả phần mềm muốn import dữ liệu vô đều có một chuẩn chung gọi là Template, nếu ai muốn định dạng file thế nào thì định dạng, đưa vô phần mềm là phần mềm phải tự xác định đúng từng Field dữ liệu để import thì chắc xây dựng đến Tết Congo cũng chưa xong.||||||||||||||| Em chỉ có vài lời góp ý vui thế thôi.
 
BÀI VIẾT

XỬ LÝ FONT TIẾNG VIỆT TRÊN EXCEL (Rev.07-10.09)




Đây là một chương trình nhỏ viết bằng VBA (Visual Bacsic Application) trên Excel lấy font Unicode làm đối tượng để chuyển đổi qua lại với các mã font khác, việc chuyển đổi được thực hiện tự động, tốc độ chuyển đổi nhanh. Chương trình này có những ưu điểm so với chương trình khác như sau:
1. Tự động xác định mã font nguồn (VNI, TCVN3-ABC, VietWare-X) để chuyển font, không phải chọn Font nguồn. Đối với 1 file nhiều bộ mã font chữ thì người sử dụng không thể kiểm soát được, phải chọn từng vùng rất khó khăn, chương trình này đã giải quyết được.
2. Chức năng tự động xác định font chuyển qua Unicode xử lý cho các trường hợp nhiều bộ mã font trên 1 Cell, Sheet và File trên nguyên tắc đọc được tiếng Việt thì chuyển được.
3. Chuyển mã font Unicode sang các font khác (VNI, TCVN3-ABC, VietWare-X), có kiểm tra trước khi chuyển nhằm tránh sự nhầm lẫn làm hỏng thông tin đáng tiếc. Chương trình khác hạn chế chức năng chuyển từ Unicode sang font khác.
4. Phân biệt chữ Hoa, chữ thường để chuyển đổi phù hợp với định dạng ban đầu. Nếu font TCVN3-ABC chương trình khác phải thực hiện thêm một bước là chuyển chữ thường sang chữ Hoa (hay bị phát sinh lỗi khi chọn 1 vùng).
5. Có chức năng chuyển đổi chữ HOA / thường cho mã Unicode (khắc phục nhược điểm các hàm Excel)
6. Quá trình chuyển font không làm mất công thức, hàm trên Excel
7. Chuyển font cho các loại biểu đồ, đồ thị trên sheet hoặc trên file. Các phần mềm khác không có chức năng này.
8. Chuyển font cho một số loại đối tượng (Object) trên Excel có font (các phần mềm khác không có), như: Comment (Cells); Rectangle, Oval, Text Box, WordArt (Drawing), Button (Forms), … Nói chung, đối tượng nào trên Excel cho phép chọn font chữ thì chương trình có khả năng chuyển đổi font chữ.
9. Không làm thay đổi thuộc tính dữ liệu; Ví dụ dãy số: 001, 002, 003, … chương trình khác sẽ chuyển thành 1, 2, 3.
10. Chuyển tất cả các Sheet trong file, kể cả sheet ẩn, sheet macro 4, đối với các sheet có protect bằng password thì khi chạy chương trình sẽ hỏi password để nhập vào. Chương trình khác sẽ báo lỗi.
11. Khắc phục các lỗi của chương trình khác
12. Hỗ trợ các hàm, công cụ liên quan đến xử lý tiếng Việt
· Các hàm chuyển mã tiếng Việt
· Các hàm dịch Số sang Chữ, kể cả trường hợp có số lẻ thập phân
· Xử lý tên riêng người Việt Nam

Giới thiệu, Hướng dẫn sử dụng chi tiết và Chương trình, xem file kèm theo: TN-FONTVIET-R7.ZIP

Nâng cấp lên TN-FONTVIET-R8.ZIP

---
By. Đỗ Thành Nhân
Email. dtnapp@gmail.com – Tel. 0913470250

Cái của bác rất hay, em đang rất cần phần mềm nào mà chuyển nhiều loại font chữ trong 1 file Powerpoint sang một loại font duy nhất, bởi vì em cứ phải chuyển từng đoạn trong từng Textbox một, thời gian làm quá là lâu (trong powerpoin không thể chọn toàn bộ các đoạn văn bản tựa như Ctrl+A trong Word được).

Các anh chị có ai biết xin chỉ dùm em với.
 
Cả nhà ơi! Lúc đầu mình cũng không biết vào macro nên bấm luôn ctr+q -> chuyển được và mình đã lưu... nhưng khi mở lại thì file( font thì đã chuyển nhưng vẫn bị lỗi) mính không biết sao nữa!
Cả nhà giúp mình với nhá!
Thanks mọi người!
Untitled.jpg
 
Lần chỉnh sửa cuối:
Ôi yêu bạn DotNhan nhiều quá! Mấy ngày nay mình đang đau đầu xử lý số liệu cái file của mình dùng Unikey mà không làm được.
Giờ thì ok rồi. Cám ơn bạn nhiều nhiều!
 
Web KT
Back
Top Bottom