"vba compress string" Code Answer's

You're definitely familiar with the best coding language VBA that developers use to develop their projects and they get all their queries like "vba compress string" answered properly. Developers are finding an appropriate answer about vba compress string related to the VBA coding language. By visiting this online portal developers get answers concerning VBA codes question like vba compress string. Enter your desired code related query in the search bar and get every piece of information about VBA code related question on vba compress string. 

vba compress string

By Excel HeroExcel Hero on May 29, 2020
Option Explicit

#If VBA7 Then
    Private Declare PtrSafe Function Compress& Lib "cabinet" (ByVal hCompressor&, ByVal pUncompressedData&, ByVal sizeUncompressedData&, ByVal pCompressedDataBuffer&, ByVal sizeCompressedBuffer&, bytesOut&)
    Private Declare PtrSafe Function Decompress& Lib "cabinet" (ByVal hCompressor&, ByVal pCompressedData&, ByVal sizeCompressedData&, ByVal pUncompressedDataBuffer&, ByVal sizeOfUncompressedBuffer&, bytesOut&)
    Private Declare PtrSafe Function CreateCompressor& Lib "cabinet" (ByVal CompressAlgorithm&, ByVal pAllocationRoutines&, hCompressor&)
    Private Declare PtrSafe Function CreateDecompressor& Lib "cabinet" (ByVal CompressAlgorithm&, ByVal pAllocationRoutines&, hDecompressor&)
    Private Declare PtrSafe Function CloseCompressor& Lib "cabinet" (ByVal hCompressor&)
    Private Declare PtrSafe Function CloseDecompressor& Lib "cabinet" (ByVal hDecompressor&)
#Else
    Private Declare Function Compress& Lib "cabinet" (ByVal hCompressor&, ByVal pUncompressedData&, ByVal sizeUncompressedData&, ByVal pCompressedDataBuffer&, ByVal sizeCompressedBuffer&, bytesOut&)
    Private Declare Function Decompress& Lib "cabinet" (ByVal hCompressor&, ByVal pCompressedData&, ByVal sizeCompressedData&, ByVal pUncompressedDataBuffer&, ByVal sizeOfUncompressedBuffer&, bytesOut&)
    Private Declare Function CreateCompressor& Lib "cabinet" (ByVal CompressAlgorithm&, ByVal pAllocationRoutines&, hCompressor&)
    Private Declare Function CreateDecompressor& Lib "cabinet" (ByVal CompressAlgorithm&, ByVal pAllocationRoutines&, hDecompressor&)
    Private Declare Function CloseCompressor& Lib "cabinet" (ByVal hCompressor&)
    Private Declare Function CloseDecompressor& Lib "cabinet" (ByVal hDecompressor&)
#End If


Function CompressString$(s$, Optional algorithm& = 5)
    Dim h&, max&, bytesOut&, b$
    If Len(s) Then
        If CreateCompressor(algorithm, 0&, h) Then
            max = LenB(s): b = Space$(max)
            If Compress(h, StrPtr(s), max, StrPtr(b), max, bytesOut) Then
                If bytesOut Then CompressString = Left$(b, bytesOut \ 2)
            End If
            CloseCompressor h
        End If
    End If
End Function

Function DecompressString$(s$, Optional algorithm& = 5)
    Dim h&, bytesOut&, b$
    If Len(s) Then
        If CreateDecompressor(algorithm, 0&, h) Then
            b = Space$(LenB(s) * 50)
            If Decompress(h, StrPtr(s), LenB(s), StrPtr(b), LenB(b), bytesOut) Then
                If bytesOut Then DecompressString = Left$(b, bytesOut \ 2)
            End If
            CloseDecompressor h
        End If
    End If
End Function
                              
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Dim GreenEggs$, Tiny$, Roundtrip$
                              
GreenEggs = "I do not like them in a box. I do not like them with a fox. I will not eat them in a house. I do not like them with a mouse. I do not like them here or there. I do not like them ANYWHERE!"
Tiny = CompressString(GreenEggs)
Roundtrip = DecompressString(Tiny)
                              
MsgBox Len(GreenEggs)    	'<--displays:  187
MsgBox Len(Tiny)    		'<--displays:  73
MsgBox Len(Roundtrip)    	'<--displays:  187

Debug.Print Roundtrip		'<--displays Dr. Seus's breakfast problem
                              
'Note: Tiny (the compressed string) can be written to disk and decompressed 
'      at a later date.  
                              
'Note: These functions use the Win32 Compression API, which is bundled with 
'Windows since Windows 8. These function will not work on Windows 7 and earlier.
                              
'Note: These functons default to using Algorithm #5: LZMS. The functions can 
'      optionally be directed to use the other supported MS API
'      compression algorithms:                
'                              MSZIP:       2
'                              XPRESS:      3
'                              XPRESS_HUFF: 4
'                              LZMS:        5

'Note: There is no Algorithm #1 included in the API.
                              
'Note: The default LZMS compression algorithm seems to compress the best.                              
                              
                              
'Reference:
'    https://docs.microsoft.com/en-us/windows/win32/api/_cmpapi/
                              

Source: academy.excelhero.com

Add Comment

12

vba text compression

By Excel HeroExcel Hero on May 29, 2020
Option Explicit

#If VBA7 Then
    Private Declare PtrSafe Function Compress& Lib "cabinet" (ByVal hCompressor&, ByVal pUncompressedData&, ByVal sizeUncompressedData&, ByVal pCompressedDataBuffer&, ByVal sizeCompressedBuffer&, bytesOut&)
    Private Declare PtrSafe Function Decompress& Lib "cabinet" (ByVal hCompressor&, ByVal pCompressedData&, ByVal sizeCompressedData&, ByVal pUncompressedDataBuffer&, ByVal sizeOfUncompressedBuffer&, bytesOut&)
    Private Declare PtrSafe Function CreateCompressor& Lib "cabinet" (ByVal CompressAlgorithm&, ByVal pAllocationRoutines&, hCompressor&)
    Private Declare PtrSafe Function CreateDecompressor& Lib "cabinet" (ByVal CompressAlgorithm&, ByVal pAllocationRoutines&, hDecompressor&)
    Private Declare PtrSafe Function CloseCompressor& Lib "cabinet" (ByVal hCompressor&)
    Private Declare PtrSafe Function CloseDecompressor& Lib "cabinet" (ByVal hDecompressor&)
#Else
    Private Declare Function Compress& Lib "cabinet" (ByVal hCompressor&, ByVal pUncompressedData&, ByVal sizeUncompressedData&, ByVal pCompressedDataBuffer&, ByVal sizeCompressedBuffer&, bytesOut&)
    Private Declare Function Decompress& Lib "cabinet" (ByVal hCompressor&, ByVal pCompressedData&, ByVal sizeCompressedData&, ByVal pUncompressedDataBuffer&, ByVal sizeOfUncompressedBuffer&, bytesOut&)
    Private Declare Function CreateCompressor& Lib "cabinet" (ByVal CompressAlgorithm&, ByVal pAllocationRoutines&, hCompressor&)
    Private Declare Function CreateDecompressor& Lib "cabinet" (ByVal CompressAlgorithm&, ByVal pAllocationRoutines&, hDecompressor&)
    Private Declare Function CloseCompressor& Lib "cabinet" (ByVal hCompressor&)
    Private Declare Function CloseDecompressor& Lib "cabinet" (ByVal hDecompressor&)
#End If


Function CompressString$(s$, Optional algorithm& = 5)
    Dim h&, max&, bytesOut&, b$
    If Len(s) Then
        If CreateCompressor(algorithm, 0&, h) Then
            max = LenB(s): b = Space$(max)
            If Compress(h, StrPtr(s), max, StrPtr(b), max, bytesOut) Then
                If bytesOut Then CompressString = Left$(b, bytesOut \ 2)
            End If
            CloseCompressor h
        End If
    End If
End Function

Function DecompressString$(s$, Optional algorithm& = 5)
    Dim h&, bytesOut&, b$
    If Len(s) Then
        If CreateDecompressor(algorithm, 0&, h) Then
            b = Space$(LenB(s) * 50)
            If Decompress(h, StrPtr(s), LenB(s), StrPtr(b), LenB(b), bytesOut) Then
                If bytesOut Then DecompressString = Left$(b, bytesOut \ 2)
            End If
            CloseDecompressor h
        End If
    End If
End Function
                              
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Dim GreenEggs$, Tiny$, Roundtrip$
                              
GreenEggs = "I do not like them in a box. I do not like them with a fox. I will not eat them in a house. I do not like them with a mouse. I do not like them here or there. I do not like them ANYWHERE!"
Tiny = CompressString(GreenEggs)
Roundtrip = DecompressString(Tiny)
                              
MsgBox Len(GreenEggs)    	'<--displays:  187
MsgBox Len(Tiny)    		'<--displays:   73
MsgBox Len(Roundtrip)    	'<--displays:  187

Debug.Print Roundtrip		'<--displays Dr. Seus's breakfast problem
                              
'Note: Tiny (the compressed string) can be written to disk and decompressed 
'      at a later date.  
                              
'Note: These functions use the Win32 Compression API, which is bundled with 
'Windows since Windows 8. These function will not work on Windows 7 and earlier.
                              
'Note: These functons default to using Algorithm #5: LZMS. The functions can 
'      optionally be directed to use the other supported MS API
'      compression algorithms:                
'                              MSZIP:       2
'                              XPRESS:      3
'                              XPRESS_HUFF: 4
'                              LZMS:        5

'Note: There is no Algorithm #1 included in the API.
                              
'Note: The default LZMS compression algorithm seems to compress the best.                              
                              
                              
'Reference:
'    https://docs.microsoft.com/en-us/windows/win32/api/_cmpapi/
                              

Source: academy.excelhero.com

Add Comment

11

All those coders who are working on the VBA based application and are stuck on vba compress string can get a collection of related answers to their query. Programmers need to enter their query on vba compress string related to VBA code and they'll get their ambiguities clear immediately. On our webpage, there are tutorials about vba compress string for the programmers working on VBA code while coding their module. Coders are also allowed to rectify already present answers of vba compress string while working on the VBA language code. Developers can add up suggestions if they deem fit any other answer relating to "vba compress string". Visit this developer's friendly online web community, CodeProZone, and get your queries like vba compress string resolved professionally and stay updated to the latest VBA updates. 

VBA answers related to "vba compress string"

View All VBA queries

VBA queries related to "vba compress string"

vba compress string excel vba compress string excel vba can a vba function return a range? vba listindex select multiple items vba excel vba how to unit test vba code excel vba check if a string contains another string excel vba binary string to hexidecimal string excel vba big hex string to decimal string excel vba write string to text file excel vba string to binary vba int to string vba remove the first character of string vba string to double vba string to integer xl vba double quotes in string literal excel vba convert number to binary string excel vba check if string entirely uppercase excel vba check if string entirely alpha vba reverse string excel vba check if all substrings in list are in string excel vba check if string entirely lowercase vba format string as cash excel vba remove all non alphanumeric characters from a string excel vba word count in string How do I put double quotes in a string in xl vba excel vba double quotes in string literal vba quotes in string literal vba quotes in string How do I put double quotes in a string in vba excel vba check if multiple substrings in string excel vba replace tokens in a template string vba string to binary excel vba date to string conversion excel vba count substring in string excel vba multiple string search with InStr function vba string to bits excel vba check if string entirely numeric excel vba check if every substring in list are in string excel vba text to binary string excel vba string to bits excel vba check if a string only contains alpha characters excel vba binary string to long excel vba check if a string only contains letters excel vba Case-Insensitive String Comparison excel vba string compression excel vba How to URL encode a string excel vba repeat string n times vba string array vba binary string to long integer excel vba remove all non alphanumeric characters from a string except period and space excel vba Convert HEX string to Unsigned INT vba Convert HEX string to Unsigned INT xl vba Convert HEX string to Unsigned INT vba hexidecimal string to decimal excel vba hexidecimal string to decimal excel vba hexidecimal string to decimal integer excel vba hex string to decimal excel vba copy a string to clipboard xl vba dynamic string array excel vba binary string to short integer vba binary string to integer xl vba binary string to integer vba binary string to short integer excel vba binary string to long integer excel vba select case string vba string to date excel vba parse hex digits from string vba parse hex digits text string filter vba parse hex digits string filter vba filter hex digits from string vba filter hex digits from string excel excel vba filter hex digits from string excel vba keep only hex digits from text string excel vba keep only hexadecimal digits in string parse filter VBA check if a cell contains a letter or string excel vba replace part of a string excel vba replaceall in string vba bit string to byte vba split string vba leading zeros in string vba boolean to string excel vba string contains vba first line of string vba search string position vba remove leading blank space in string vba date to string vba find string vba concatenate string vba string start with vba string vba string to long vba unquote string vba string length vba remove numbers from string excel vba base64 encode decode string vba first cell in range how to convert arraylist to array in vba excel vba how to activate a specific worksheet excel vba create ADO recordset from table vba check if file exists excel vba find get last row in column excel vba last day of month excel vba base64 decode vba make a short integer from two bytes excel vba how to reset usedrange vba end for loop excel vba second byte from INTEGER excel vba set cell format to date excel vba determine number of elements in a 1D array excel vba ubound on a multidimensional array excel-vba get integer high byte excel vba check if directory exists xl vba check for folder excel vba recursive example factorial function excel vba factorial vba should i use .value .value2 vba round number excel vba delete sheets and stop excel asking the user to confirm excel vba add one hour excel vba arraylist excel-vba long integer value to bits excel vba cells background color vba continue for each loop excel vba initialize or detect NaN, +infinity, -infinity, special values vba dictionnary excel vba last row excel vba constant excel vba wait milliseconds excel vba pause excel-vba pause excel-vba wait vba for each array excel vba exit for next loop excel vba check if key is in collection vba clear a worksheet excel vba Populating a combobox on a userform from a range of cells excel vba initialize or detect NaN infinity infinity special values vba BitsToLong excel vba test or check if sheet exists vba function sheet exists xl-vba function sheet exists excel vba open text file vba parse xml file excel vba determine number of elements in an array vba double quote vba event variable change vba replace excel vba last row in range excel vba difference between DateValue and CDate excel vba date to unix timestamp and vice versa how to do error handling in access vba excel vba low byte from INTEGER excel vba how to get the old value of a changed cell excel vba query access database vba declare api 64 bit 32 bit vba set row height excel vba get the path of current workbook excel vba stack memory structure filo excel vba clear contents and formatting of cell with a single command vba sheet hide unhide how to check is the value enterd is a number or text in vba vba ignore case excel vba ceiling function excel vba queue fifo memory structure first in first out vba delete array element vba redim preserve vba convert 2 bytes to an integer vba make long from two words excel vba compare 2 rows excel vba create recordset from table vba sheets add at end vba ubound array 2-dimensional excel vba ADOX.Column append column adBoolean error excel vba check for uninitialized or empty array excel vba delete rows in range excel vba difference between .value .value2 .text .formula .formular1c1 excel vba range.text vba convert endianess vba make long from two shorts how to INPUT text in shape with enter and spacein vba vba BitToLong vba collection remove how to convert binary to decimal in vba code vba multiple dim excel vba select multiple ranges vba create ADO recordset from table excel vba convert text YYYYMMDD to date excel vba write to the windows registry vba ado ace sql alias ignored for calculated column message box VBA vba for next loop excel vba bitwise left shift excel vba freeze panes without select vba array length excel vba get the workbook full file name with path excel vba clean extra spaces from an entire range excel vba read registry key value excel vba find last column

Browse Other Code Languages

CodeProZone