Font chữ trong VBA

  • Thread starter Thread starter viehoai
  • Ngày gửi Ngày gửi
Liên hệ QC

viehoai

Thành viên gắn bó
Tham gia
22/5/09
Bài viết
2,599
Được thích
2,908
Xin hỏi các anh chị
Trong VBA tôi sử dưụng các font chữ tiếng Việt (như TCVN3) thì được, nhưng chỉ font Unicode lại không được (từ cửa sổ VBE tôi đã vào Tools -> Option để chọn font hợp lý nhưng hông được). Xin hỏi các anh chị tại sao và cách giải quyết như thế nào (trong excel dùng vẫn bình thường). Xin cảm ơn các anh chị
 
Xin hỏi các anh chị
Trong VBA tôi sử dưụng các font chữ tiếng Việt (như TCVN3) thì được, nhưng chỉ font Unicode lại không được (từ cửa sổ VBE tôi đã vào Tools -> Option để chọn font hợp lý nhưng hông được). Xin hỏi các anh chị tại sao và cách giải quyết như thế nào (trong excel dùng vẫn bình thường). Xin cảm ơn các anh chị
Tại nó là... thế! không thể gõ tiếng Việt Unicode trong cửa sổ VBA đâu bạn à!
Tuy nhiên để chạy chương trình hoặc hiển thị tiếng Việt thì ta cũng có nhiều cách ---> Không biết bạn muốn làm điều gì với tiếng Việt vậy? Nói rõ hơn, có khi có cách xử lý đấy
 
Upvote 0
Tại nó là... thế! không thể gõ tiếng Việt Unicode trong cửa sổ VBA đâu bạn à!
Tuy nhiên để chạy chương trình hoặc hiển thị tiếng Việt thì ta cũng có nhiều cách ---> Không biết bạn muốn làm điều gì với tiếng Việt vậy? Nói rõ hơn, có khi có cách xử lý đấy
Khi em lập trình cần xuất một số text ra excel thôi
VD if cells(a,i)>0 then cells(B,i)="Khoẻ"
else
cells(B,i)="Yếu" ----> khi chạy code (font Unicode ra Excel bị bể font). Xin cảm ơn anh
 
Upvote 0
Khi em lập trình cần xuất một số text ra excel thôi
VD if cells(a,i)>0 then cells(B,i)="Khoẻ"
else
cells(B,i)="Yếu" ----> khi chạy code (font Unicode ra Excel bị bể font). Xin cảm ơn anh
Chử Khỏe thay bằng "Kh" & ChrW(7887) & "e"
Chữ Yếu thay bằng "Y" & ChrW(7871) & "u"
Hoặc có thể dùng hàm UniConvert để hổ trợ:
PHP:
Function UniConvert(Text As String) As String
  Dim InputMethod, CharCode, i As Long
  UniConvert = Text
  InputMethod = Array("a81", "a82", "a83", "a84", "a85", "a61", "a62", "a63", "a64", "a65", "e61", _
      "e62", "e63", "e64", "e65", "o61", "o62", "o63", "o64", "o65", "o71", "o72", "o73", "o74", _
      "o75", "u71", "u72", "u73", "u74", "u75", "a1", "a2", "a3", "a4", "a5", "a8", "a6", "d9", _
      "e1", "e2", "e3", "e4", "e5", "e6", "i1", "i2", "i3", "i4", "i5", "o1", "o2", "o3", "o4", _
      "o5", "o6", "o7", "u1", "u2", "u3", "u4", "u5", "u7", "y1", "y2", "y3", "y4", "y5")
  CharCode = Array(ChrW(7855), ChrW(7857), ChrW(7859), ChrW(7861), ChrW(7863), ChrW(7845), ChrW(7847), _
      ChrW(7849), ChrW(7851), ChrW(7853), ChrW(7871), ChrW(7873), ChrW(7875), ChrW(7877), ChrW(7879), _
      ChrW(7889), ChrW(7891), ChrW(7893), ChrW(7895), ChrW(7897), ChrW(7899), ChrW(7901), ChrW(7903), _
      ChrW(7905), ChrW(7907), ChrW(7913), ChrW(7915), ChrW(7917), ChrW(7919), ChrW(7921), ChrW(225), _
      ChrW(224), ChrW(7843), ChrW(227), ChrW(7841), ChrW(259), ChrW(226), ChrW(273), ChrW(233), ChrW(232), _
      ChrW(7867), ChrW(7869), ChrW(7865), ChrW(234), ChrW(237), ChrW(236), ChrW(7881), ChrW(297), ChrW(7883), _
      ChrW(243), ChrW(242), ChrW(7887), ChrW(245), ChrW(7885), ChrW(244), ChrW(417), ChrW(250), ChrW(249), _
      ChrW(7911), ChrW(361), ChrW(7909), ChrW(432), ChrW(253), ChrW(7923), ChrW(7927), ChrW(7929), ChrW(7925))
  For i = 0 To UBound(InputMethod)
    UniConvert = Replace(UniConvert, InputMethod(i), CharCode(i))
    UniConvert = Replace(UniConvert, UCase(InputMethod(i)), UCase(CharCode(i)))
  Next i
End Function
Khi ấy code của bạn sẽ được viết như sau:
If gì gì đó Then cells(B,i) = UniConvert("Kho3e")
If gì gì đó Then cells(B,i) = UniConvert("Ye61u")
Giống như ta gõ tiếng Việt theo kiểu VNI ấy
 
Upvote 0
Chử Khỏe thay bằng "Kh" & ChrW(7887) & "e"
Chữ Yếu thay bằng "Y" & ChrW(7871) & "u"
Hoặc có thể dùng hàm UniConvert để hổ trợ:
PHP:
Function UniConvert(Text As String) As String
  Dim InputMethod, CharCode, i As Long
  UniConvert = Text
  InputMethod = Array("a81", "a82", "a83", "a84", "a85", "a61", "a62", "a63", "a64", "a65", "e61", _
      "e62", "e63", "e64", "e65", "o61", "o62", "o63", "o64", "o65", "o71", "o72", "o73", "o74", _
      "o75", "u71", "u72", "u73", "u74", "u75", "a1", "a2", "a3", "a4", "a5", "a8", "a6", "d9", _
      "e1", "e2", "e3", "e4", "e5", "e6", "i1", "i2", "i3", "i4", "i5", "o1", "o2", "o3", "o4", _
      "o5", "o6", "o7", "u1", "u2", "u3", "u4", "u5", "u7", "y1", "y2", "y3", "y4", "y5")
  CharCode = Array(ChrW(7855), ChrW(7857), ChrW(7859), ChrW(7861), ChrW(7863), ChrW(7845), ChrW(7847), _
      ChrW(7849), ChrW(7851), ChrW(7853), ChrW(7871), ChrW(7873), ChrW(7875), ChrW(7877), ChrW(7879), _
      ChrW(7889), ChrW(7891), ChrW(7893), ChrW(7895), ChrW(7897), ChrW(7899), ChrW(7901), ChrW(7903), _
      ChrW(7905), ChrW(7907), ChrW(7913), ChrW(7915), ChrW(7917), ChrW(7919), ChrW(7921), ChrW(225), _
      ChrW(224), ChrW(7843), ChrW(227), ChrW(7841), ChrW(259), ChrW(226), ChrW(273), ChrW(233), ChrW(232), _
      ChrW(7867), ChrW(7869), ChrW(7865), ChrW(234), ChrW(237), ChrW(236), ChrW(7881), ChrW(297), ChrW(7883), _
      ChrW(243), ChrW(242), ChrW(7887), ChrW(245), ChrW(7885), ChrW(244), ChrW(417), ChrW(250), ChrW(249), _
      ChrW(7911), ChrW(361), ChrW(7909), ChrW(432), ChrW(253), ChrW(7923), ChrW(7927), ChrW(7929), ChrW(7925))
  For i = 0 To UBound(InputMethod)
    UniConvert = Replace(UniConvert, InputMethod(i), CharCode(i))
    UniConvert = Replace(UniConvert, UCase(InputMethod(i)), UCase(CharCode(i)))
  Next i
End Function
Khi ấy code của bạn sẽ được viết như sau:


Giống như ta gõ tiếng Việt theo kiểu VNI ấy
Em Không biết cách gõ bộ font này, anh cho em luôn bộ gõ nhé.
Nhưng khi xuất ra excel thì nó tương đương font Unicode hả anh?
Xin cảm ơn anh
 
Upvote 0
Em Không biết cách gõ bộ font này, anh cho em luôn bộ gõ nhé.
Nhưng khi xuất ra excel thì nó tương đương font Unicode hả anh?
Xin cảm ơn anh
Thì gõ bình thường thôi (kiểu gõ VNI) như mọi khi ta vẫn gõ ấy
Ví dụ
Giải pháp Excel - Công cụ tuyệt vời của bạn
Ta sẽ gõ thành:
Gia3i pha1p Excel - Co6ng cu5 tuye65t vo72i cu3a ba5n
---------------------
Số 1: Dấu sắc
Số 2: Dấu huyền
Số 3: Dấu hỏi
Số 4: Dấu ngã
Số 5: Dấu nặng
Số 6: Dấu mũ (dấu ô)
Số 7: Dấu râu (dấu ơ)
Số 8: Dấu ắ
Số 9: Dấu đ
---------------------
Còn nếu bạn thường gõ theo kiểu Telex thì hãy sửa lại hàm trên cho phù hợp (chỉ sửa mảng InputMethod và CharCode là được)
---------------------
Chú ý quan trọng: Phải bỏ dấu chính xác ngay vị trí chữ
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom