UTF-8ファイルの読み込み
下のプロシージャを作成しました。
読み込んだファイルは後で使用するので、Private宣言の変数にしました。
ADODB.Streamを使用し、一行ずつ読み込み確認のためイミディエイトウィンドウに表示します。
イミディエイトウィンドウに表示させるには「Debug.Print」を使います。
Private Sub ExUtfRead()
    Dim fname As String
    Dim tmp As String
    Dim tobj As Object
     
    fname = Range("F5")
    Set tobj = CreateObject("ADODB.Stream")
    tobj.Charset = "UTF-8"
    tobj.LineSeparator = 10
    tobj.Open
    tobj.LoadFromFile fname
        Do Until tobj.EOS
            tmp = tobj.ReadText(-2)
            sUtfBuf = sUtfBuf & tmp
        Loop
    tobj.Close
    Debug.Print sUtfBuf
End Sub
[変換開始]ボタンのクリックイベントから呼び出すようにします。
Private Sub CommandButton1_Click()
    If Range("F5") = "" Then
        MsgBox "変換ファイル名を入力してください。"
        Exit Sub
    End If
    If ExDir(Range("F5"), vbNormal) = "" Then
         MsgBox "変換ファイル名が存在しません。" _
             & vbCrLf & "処理を中止します。"
         Exit Sub
    End If
     
    ExUtfRead
End Sub
実行結果のイミディエイトウィンドウです。
文字化けせずに正常に読み込まれています。

(イミディエイトウィンドウを開くには、表示メニューで行います)
読み込んだファイルをBOM無しのUTF-8で保存します。
BOM無しにするに先頭の3バイトの情報を削除します。
BOM有りにするには、この部分のコードを削除してください。
引数を追加しIF文で選択できるようにしてもいいかと思います。
保存したUTF-8ファイルをテキストエディタで開いた画面です。
UTF-8(BOM無し)と表示されています。
念のためにバイナリエディタで比較しました。
処理前のファイルを開いたバイナリコードです。
処理後のファイルを開いたバイナリコードです。
違いはなく問題なく読み書きできています。
