関数・メソッド

【ExcelVBA】Base64にエンコードする

Base64にエンコードする

ExcelVBAを使用して、Base64フォーマットにエンコードしたい場合があります。

■例
Internet Explorerを自動制御をする際、Basic認証を超えたい
メールで画像ファイルを添付して送付する際、Base64フォーマットに変換したい

サンプルコード

'■Base64へエンコードを行うサブプロシージャ
Public Function Call_EncodeBase64(ByRef text As String) As String
    '■参照設定不要、オブジェクト準備
    Dim node As Object, obj As Object
    Set node = CreateObject("Msxml2.DOMDocument.3.0").createElement("base64")
    Set obj = CreateObject("ADODB.Stream")
 
    '■エンコード(textをBASE64へ変換)
    node.DataType = "bin.base64"
    With obj
        .Type = 2
        .Charset = "us-ascii"
        .Open
        .WriteText text
        .Position = 0
        .Type = 1
        .Position = 0
    End With
    node.nodeTypedValue = obj.Read
 
    '■改行を削除して返却(上記で取り除けない為)
    Call_EncodeBase64 = Replace(node.text, vbLf, "")
End Function

使い方

上記をコピペでお好きなモジュール内に記載してください。

'■Base64へエンコードを行う
Public Sub call_Sample()
    Debug.Print Call_EncodeBase64("aaa")        'aaa      → YWFh
    Debug.Print Call_EncodeBase64("sample")     'sample   → c2FtcGxl
    Debug.Print Call_EncodeBase64("password")   'passwoed → cGFzc3dvcmQ=
End Sub

コメント

タイトルとURLをコピーしました