Bạn tự viết được mà.
Trước hết khái niệm. Mỗi một ký tự trong bảng mã Unicode được gán cho một con số gọi là điểm mã (code point). Hay nói ngắn gọn là mã.
Ví dụ ký tự "a" có mã là bao nhiêu? Trong Excel bạn nhập công thức
thì sẽ thấy kết quả là 97. Ở dạng hex thì là 61 - trong Delphi viết là $61, trong VBA là &H61
Mỗi một ký tự / chuỗi ký tự có thể được biểu diễn dưới dạng những mã khác nhau. Vd. cùng một chuỗi có thể mã hóa dùng VNI, TCVN3, Windows 1258 (vietnamese), unicode, UTF8 v...v
vd. Lấy chuỗi "NGUYỄN VĂN DƯƠNG"
Nếu ta biểu diễn chuỗi trên ở dạng UTF8, giả sử thành chuỗi str1, và dán vào notepad thì notepad phát hiện ra ngay đó là "NGUYỄN VĂN DƯƠNG" được mã bằng UTF8. Nhưng nếu dán vào ô trong Excel thì là chuỗi "đầu trâu mặt ngựa", tức "khó đọc". Nhưng cái này không quan trọng.
Chuỗi str1 sẽ có một số bai: 4e (= 78 thập phân), 47 (= 71), ...
Và người ta đã ghép các bai 4e, 47, ... để tạo ra chuỗi nhìn thấy ở B2. Tức trong B2 không phải là chuỗi UTF8 str1 mà là chuỗi tạo từ các bai của chuỗi str1.
Biết được "triết lý" rồi thì bạn tự làm được thôi.
Tôi có đính kèm code của các hàm. Vd. bạn dùng hàm StringToUTF8String để chuyển chuỗi của bạn (unicode) thành UTF8, giả sử là chuỗi str1. Sau đó bạn đọc từng bai (ở dạng hex, tức vd. không phải là 97 mà là 61) của chuỗi str1 rồi ghép chúng với nhau thôi.