Attribute VB_Name = "cast_emptyArray" '------------------------------------------------------------------------------- 'File : cast_emptyArray.bas ' Copyright mpl by ERB software ' All rights reserved ' http://wiki.yaslaw.info/dokuwiki/doku.php/vba 'Environment : VBA 2010 + 'Version : 1.0.0 'Name : emptyArray 'Author : Stefan Erb (ERS) 'History : 04.09.2019 - ERS - Creation '------------------------------------------------------------------------------- Option Explicit Private Declare Function emptyArrayVariant Lib "oleaut32" Alias "SafeArrayCreateVector" (Optional ByVal vt As VbVarType = vbVariant, Optional ByVal lLow As Long = 0, Optional ByVal lCount As Long = 0) As Variant() Private Declare Function emptyArrayDate Lib "oleaut32" Alias "SafeArrayCreateVector" (Optional ByVal vt As VbVarType = vbDate, Optional ByVal lLow As Long = 0, Optional ByVal lCount As Long = 0) As Date() Private Declare Function emptyArrayString Lib "oleaut32" Alias "SafeArrayCreateVector" (Optional ByVal vt As VbVarType = vbString, Optional ByVal lLow As Long = 0, Optional ByVal lCount As Long = 0) As String() Private Declare Function emptyArrayInteger Lib "oleaut32" Alias "SafeArrayCreateVector" (Optional ByVal vt As VbVarType = vbInteger, Optional ByVal lLow As Long = 0, Optional ByVal lCount As Long = 0) As Integer() Private Declare Function emptyArrayLong Lib "oleaut32" Alias "SafeArrayCreateVector" (Optional ByVal vt As VbVarType = vbLong, Optional ByVal lLow As Long = 0, Optional ByVal lCount As Long = 0) As Long() Private Declare Function emptyArrayDouble Lib "oleaut32" Alias "SafeArrayCreateVector" (Optional ByVal vt As VbVarType = vbDouble, Optional ByVal lLow As Long = 0, Optional ByVal lCount As Long = 0) As Double() Private Declare Function emptyArrayBoolean Lib "oleaut32" Alias "SafeArrayCreateVector" (Optional ByVal vt As VbVarType = vbBoolean, Optional ByVal lLow As Long = 0, Optional ByVal lCount As Long = 0) As Boolean() Private Declare Function emptyArrayObject Lib "oleaut32" Alias "SafeArrayCreateVector" (Optional ByVal vt As VbVarType = vbObject, Optional ByVal lLow As Long = 0, Optional ByVal lCount As Long = 0) As Object() '/** ' * Erstellt einen leeren Array. ' * @param VbVarType ' * @return Array ' */ Public Function emptyArray(Optional ByVal iVarType As VbVarType = vbVariant) As Variant Select Case iVarType Case vbDate: emptyArray = emptyArrayDate Case vbString: emptyArray = emptyArrayString Case vbInteger: emptyArray = emptyArrayInteger Case vbLong: emptyArray = emptyArrayLong Case vbDouble: emptyArray = emptyArrayDouble Case vbBoolean: emptyArray = emptyArrayBoolean Case vbObject: emptyArray = emptyArrayObject '//TODO: weitere Datentypen abhandeln Case Else: emptyArray = emptyArrayVariant End Select End Function '/** ' * Erstellt einen leeren Array auf der Basis eines Arrays ' * @param Array ' * @return Array ' */ Public Function emptyArrayRef(ByRef ioArray As Variant) As Variant If IsArray(ioArray) Then ioArray = emptyArray(varType(ioArray) - vbArray) Else ioArray = emptyArrayVariant End If emptyArrayRef = ioArray End Function