The following demonstrates how to use VBA Excel to download random data from a AlphaRNG device when used with Entropy Server for Windows and utilizing a named pipe. The following code will only work when running AlphaRNG Entropy Server.

A sample source code that retrieves a random VBA Integer using entropy-server through a named pipe connection and inserts that value into A1 cell of the Excel Sheet

Private Function getRandomInteger() As Integer
    
    Dim intFileNum%
    intFileNum = FreeFile
    Dim RequestHeaderBytes(1 To 4) As Integer
    Dim randomInteger As Integer
    
    ' Open the entropy server named pipe
    Open "\\.\pipe\AlphaRNG" For Binary Access Read Write As intFileNum
    
    ' Prepare the Entropy Server API request structure - requesting 2 bytes for the VBA Integer.
    ' For more information visit https://tectrolabs.com/docs/alpharng/entropy-server-api/
    RequestHeaderBytes(3) = LenB(randomInteger)
    
    ' Send the request header to the entropy server in one shot
    Put intFileNum, , RequestHeaderBytes
       
    ' With no delay, receive the random Integer
    Get intFileNum, , randomInteger
    
    Close intFileNum
    
    getRandomInteger = randomInteger
    End Function

Sub Macro1()
    Dim rndInteger As Integer
    rndInteger = getRandomInteger()
    [A1].Value = rndInteger

End Sub

A sample source code that retrieves a random VBA Double using entropy-server through a named pipe connection and inserts that value into A1 cell of the Excel Sheet

Private Function getRandomDouble() As Double
    
    Dim intFileNum%
    intFileNum = FreeFile
    Dim RequestHeaderBytes(1 To 4) As Integer
    Dim randomDouble As Double
    
    ' Open the entropy server named pipe
    Open "\\.\pipe\AlphaRNG" For Binary Access Read Write As intFileNum
    
    ' Prepare the Entropy Server API request structure - requesting 8 bytes for the VBA Double.
    ' For more information visit https://tectrolabs.com/docs/alpharng/entropy-server-api/
    RequestHeaderBytes(3) = LenB(randomDouble)
    
    ' Send the request header to the entropy server in one shot
    Put intFileNum, , RequestHeaderBytes
    
    ' With no delay, receive the random Double
    Get intFileNum, , randomDouble
    
    Close intFileNum
    
    getRandomDouble = randomDouble
    End Function

Sub Macro1()
    Dim rndDouble As Double
    rndDouble = getRandomDouble()
    [A1].Value = rndDouble

End Sub

A sample source code that retrieves a random VBA Long using entropy-server through a named pipe connection and inserts that value into A1 cell of the Excel Sheet


Private Function getRandomLong() As Long
    
    Dim intFileNum%
    intFileNum = FreeFile
    Dim RequestHeaderBytes(1 To 4) As Integer
    Dim randomLong As Long
    
    ' Open the entropy server named pipe
    Open "\\.\pipe\AlphaRNG" For Binary Access Read Write As intFileNum
    
    ' Prepare the Entropy Server API request structure - requesting 4 bytes for a VBA Long.
    ' For more information visit https://tectrolabs.com/docs/alpharng/entropy-server-api/
    RequestHeaderBytes(3) = LenB(randomLong)
    
    ' Send the request header to the entropy server in one shot
    Put intFileNum, , RequestHeaderBytes
    
    ' With no delay, receive the random Long
    Get intFileNum, , randomLong
    
    Close intFileNum
    
    getRandomLong = randomLong
    End Function

Sub Macro1()
    Dim rndLong As Long
    rndLong = getRandomLong()
    [A1].Value = rndLong

End Sub