Here you go:
Public Function SHA1Base64(ByVal sTextToHash As String)
Dim asc As Object, enc As Object
Dim TextToHash() As Byte
Set asc = CreateObject("System.Text.UTF8Encoding")
Set enc = CreateObject("System.Security.Cryptography.SHA1CryptoServiceProvider")
TextToHash = asc.Getbytes_4(sTextToHash)
Dim bytes() As Byte
bytes = enc.ComputeHash_2((TextToHash))
SHA1Base64 = EncodeBase64(bytes)
Set asc = Nothing
Set enc = Nothing
End Function
Private Function EncodeBase64(ByRef arrData() As Byte) As String
Dim objXML As MSXML2.DOMDocument
Dim objNode As MSXML2.IXMLDOMElement
Set objXML = New MSXML2.DOMDocument
' byte array to base64
Set objNode = objXML.createElement("b64")
objNode.DataType = "bin.base64"
objNode.nodeTypedValue = arrData
EncodeBase64 = objNode.Text
Set objNode = Nothing
Set objXML = Nothing
End Function
Be aware that not nearly every .NET Framework library is available to be used in VBA (without wrapping them in COM callable wrapper dll's anyway). It just so happens that the functions you need can be called directly from VBA. And yes, it's true that there's really not much documentation on this that I'm aware of and it's anything but intuitive. GetBytes_4 and ComputerHash_2 are actually "overloaded" functions in .NET, something that doesn't exist in VBA. It's basically where you declare the same function multiple times, but each time it takes different quantity and/or different types of arguments.
You may want to compare the output of these functions to some known good output from somewhere else. I say that only because I know this code is returning something but I don't know if it's what you're looking for.