Trợ giúp gõ chữ tiếng Việt có dấu trong FORM

Liên hệ QC

GACON_VBA

Thành viên chính thức
Tham gia
30/7/16
Bài viết
79
Được thích
1
Chào các bác, em cần trợ giúp cách gõ chữ tiếng Việt có dấu trong form dữ liệu. Với em thấy có chèn biểu tượng icoin vào (như kiểu excel) nữa thi hay quá ạ. Mong nhận được sự trợ giúp của các bác. Xin cảm ơn trước ạ!
 

File đính kèm

  • Help.xlsm
    416.7 KB · Đọc: 9
  • Khung.JPG
    Khung.JPG
    60.2 KB · Đọc: 37
Bạn tham khảo. Nguồn trên diễn đàn
 

File đính kèm

  • Help.xlsm
    455.2 KB · Đọc: 15
Upvote 0
Bạn tham khảo. Nguồn trên diễn đàn
Code quá trời đất, ổng coi chắc ổng khùng luôn quá
Vầy thôi đủ rồi:
Mã:
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Private Declare PtrSafe Function DefWindowProc Lib "user32.dll" Alias "DefWindowProcW" _
    (ByVal hwnd As LongPtr, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As LongPtr) As LongPtr

Private Sub UserForm_Initialize()
  Dim hwnd      As LongPtr
  Dim sUniCap   As String
  hwnd = FindWindow("ThunderDFrame", Me.Caption)
  sUniCap = "C" & ChrW(7897) & "ng ḥa xă h" & ChrW(7897) & "i ch" & ChrW(7911) & " ngh" & ChrW(297) & "a Vi" & ChrW(7879) & "t Nam"
  DefWindowProc hwnd, &HC, 0, StrPtr(sUniCap)
End Sub
 
Upvote 0
@ndu96081631 :D. Thường em cứ import module vào file cần, xong nhớ chỗ viết sub trong form thôi ạ. Chứ module kia em nhìn như cũng không hiểu gì hết =))
 
Upvote 0
Code quá trời đất, ổng coi chắc ổng khùng luôn quá
Vầy thôi đủ rồi:
Mã:
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Private Declare PtrSafe Function DefWindowProc Lib "user32.dll" Alias "DefWindowProcW" _
    (ByVal hwnd As LongPtr, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As LongPtr) As LongPtr

Private Sub UserForm_Initialize()
  Dim hwnd      As LongPtr
  Dim sUniCap   As String
  hwnd = FindWindow("ThunderDFrame", Me.Caption)
  sUniCap = "C" & ChrW(7897) & "ng ḥa xă h" & ChrW(7897) & "i ch" & ChrW(7911) & " ngh" & ChrW(297) & "a Vi" & ChrW(7879) & "t Nam"
  DefWindowProc hwnd, &HC, 0, StrPtr(sUniCap)
End Sub
Làm thế nào để chạy code này bác. Em copy dán vào module mới mà k được ạ. Bác hướng dẫn em với...
 
Upvote 0
@GACON_VBA Em không hiểu code họ viết gì thì em cứ thêm 2 cái module vào file xong viết code này trong form :v
Mã:
Private Sub UserForm_Initialize()
    UniCaption Me, UniConvert("Tieesng Vieejt Cos daasu", "Telex")    '--- Go dang telex nhe
End Sub
Bác thay thành:
Mã:
Private Sub UserForm_Initialize()
    UniCaption Me, UniConvert("Carm Own Basc Nhieefu", "Telex")    '--- Go dang telex nhe
End Sub
 
Upvote 0
Làm thế nào để chạy code này bác. Em copy dán vào module mới mà k được ạ. Bác hướng dẫn em với...
Toàn bộ code để hiện tiếng Việt và chèn Icon (trong UserForm chứ không phải trong Module)
Mã:
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Private Declare PtrSafe Function DefWindowProc Lib "user32.dll" Alias "DefWindowProcW" _
    (ByVal hWnd As LongPtr, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As LongPtr) As LongPtr
Private Declare PtrSafe Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" _
    (ByVal hInst As LongPtr, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As LongPtr
Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" _
    (ByVal hWnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, lParam As Any) As LongPtr

Private Const WM_SETICON = &H80
Private Const ICON_SMALL = 0&
Private Const ICON_BIG = 1&
Private Const WM_SETTEXT = &HC
Private hWnd    As LongPtr

Private Sub SetIcon(ByVal hWnd As LongPtr, ByVal strIconPath As String)
  Dim hIcon As LongPtr
  Dim lRet  As LongPtr
  hIcon = ExtractIcon(0, strIconPath, 0)
  lRet = SendMessage(hWnd, WM_SETICON, ICON_SMALL, ByVal hIcon)
  lRet = SendMessage(hWnd, WM_SETICON, ICON_BIG, ByVal hIcon)
End Sub
Private Sub SetUniCap(ByVal hWnd As LongPtr, ByVal sUniCap As String)
  Dim lProc As LongPtr
  lProc = DefWindowProc(hWnd, WM_SETTEXT, 0, StrPtr(sUniCap))
End Sub
Private Sub UserForm_Initialize()
  Dim sUniCap       As String
  Dim strIconPath   As String
  hWnd = FindWindow("ThunderDFrame", Me.Caption)
 
  sUniCap = "C" & ChrW(7897) & "ng hòa xã h" & ChrW(7897) & "i ch" & ChrW(7911) & " ngh" & ChrW(297) & "a Vi" & ChrW(7879) & "t Nam"
  SetUniCap hWnd, sUniCap
 
  strIconPath = ThisWorkbook.Path & "\bing.ico"
  SetIcon hWnd, strIconPath
End Sub
Biến sUniCap chính là chỗ tiếng Việt đó
Code này ngắn gọn nhất (có thể) rồi đó
Lưu ý: phải giải nén file trước nha (chạy luôn trong file RAR sẽ thiếu icon)
 

File đính kèm

  • UniCap&Icon.rar
    419.9 KB · Đọc: 28
Lần chỉnh sửa cuối:
Upvote 0
Toàn bộ code để hiện tiếng Việt và chèn Icon (trong UserForm chứ không phải trong Module)
Mã:
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Private Declare PtrSafe Function DefWindowProc Lib "user32.dll" Alias "DefWindowProcW" _
    (ByVal hWnd As LongPtr, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As LongPtr) As LongPtr
Private Declare PtrSafe Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" _
    (ByVal hInst As LongPtr, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As LongPtr
Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" _
    (ByVal hWnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, lParam As Any) As LongPtr

Private Const WM_SETICON = &H80
Private Const ICON_SMALL = 0&
Private Const ICON_BIG = 1&
Private Const WM_SETTEXT = &HC
Private hWnd    As LongPtr

Private Sub SetIcon(ByVal hWnd As LongPtr, ByVal strIconPath As String)
  Dim hIcon As LongPtr
  Dim lRet  As LongPtr
  hIcon = ExtractIcon(0, strIconPath, 0)
  lRet = SendMessage(hWnd, WM_SETICON, ICON_SMALL, ByVal hIcon)
  lRet = SendMessage(hWnd, WM_SETICON, ICON_BIG, ByVal hIcon)
End Sub
Private Sub SetUniCap(ByVal hWnd As LongPtr, ByVal sUniCap As String)
  Dim lProc As LongPtr
  lProc = DefWindowProc(hWnd, WM_SETTEXT, 0, StrPtr(sUniCap))
End Sub
Private Sub UserForm_Initialize()
  Dim sUniCap       As String
  Dim strIconPath   As String
  hWnd = FindWindow("ThunderDFrame", Me.Caption)

  sUniCap = "C" & ChrW(7897) & "ng hòa xã h" & ChrW(7897) & "i ch" & ChrW(7911) & " ngh" & ChrW(297) & "a Vi" & ChrW(7879) & "t Nam"
  SetUniCap hWnd, sUniCap

  strIconPath = ThisWorkbook.Path & "\bing.ico"
  SetIcon hWnd, strIconPath
End Sub
Biến sUniCap chính là chỗ tiếng Việt đó
Code này ngắn gọn nhất (có thể) rồi đó
Lưu ý: phải giải nén file trước nha (chạy luôn trong file RAR sẽ thiếu icon)
Em làm được rồi ạ. Hơi tham lam chút, bác có cách nào dấu Icoin vào ổ C mục cài đặt excel ofilce (ổ C:\....) hay tân dụng icoin có sẳn trong đó không ạ. Tại có Icoin đi kèm trong nó cồng kềnh chút. hihhi
 

File đính kèm

  • Thanks.JPG
    Thanks.JPG
    61.1 KB · Đọc: 20
Upvote 0
Em làm được rồi ạ. Hơi tham lam chút, bác có cách nào dấu Icoin vào ổ C mục cài đặt excel ofilce (ổ C:\....) hay tân dụng icoin có sẳn trong đó không ạ. Tại có Icoin đi kèm trong nó cồng kềnh chút. hihhi
Thì bạn muốn nhét icon ở đâu cũng được mà, chỉ cần khai báo đường dẫn chính xác là được rồi. Thay đường dẫn đến file icon chỗ này:
Mã:
strIconPath = ThisWorkbook.Path & "\bing.ico"
 
Upvote 0
Web KT

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

Back
Top Bottom