跟我学VBA我这里专注VBA, 授人以渔。我98年开始从源码接触VBA已经20余年了随着年龄的增长越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友都来学习VBA,利用VBA,起码可以提高自己的工作效率可以有时间多陪陪父母多陪陪家人何乐而不为呢我的教程一共九套从入门开始一直讲到程序的分发是学习利用VBA的实用教程。这份API资料是随高级教程赠送的。这些内容是MS的权威资料看似枯燥但对于想学习API函数的朋友是非常有用的。这讲我们继续学习VBA 64位API声明语句第018讲【分享成果随喜正能量】我们对父母孝顺这是天经地义的孝心对儿女的关心也是理所当然的慈心。但是我们要更扩大对一切有情的爱能以孝顺父母、慈爱儿女的心来关心天下的一切众生如此对众生的付出自然毫无悭吝毫无计较。VBA 64位API声明语句第018讲Const FORMAT_MESSAGE_ALLOCATE_BUFFER H100Const FORMAT_MESSAGE_IGNORE_INSERTS H200Const FORMAT_MESSAGE_FROM_STRING H400Const FORMAT_MESSAGE_FROM_HMODULE H800Const FORMAT_MESSAGE_FROM_SYSTEM H1000Const FORMAT_MESSAGE_ARGUMENT_ARRAY H2000Const FORMAT_MESSAGE_MAX_WIDTH_MASK HFFDeclare PtrSafe Function CreatePipe Lib kernel32 Alias CreatePipe (phReadPipe As LongPtr, phWritePipe As LongPtr, lpPipeAttributes As SECURITY_ATTRIBUTES, ByVal nSize As Long) As LongDeclare PtrSafe Function ConnectNamedPipe Lib kernel32 Alias ConnectNamedPipe (ByVal hNamedPipe As LongPtr, lpOverlapped As OVERLAPPED) As LongDeclare PtrSafe Function DisconnectNamedPipe Lib kernel32 Alias DisconnectNamedPipe (ByVal hNamedPipe As LongPtr) As LongDeclare PtrSafe Function SetNamedPipeHandleState Lib kernel32 Alias SetNamedPipeHandleState (ByVal hNamedPipe As LongPtr, lpMode As Long, lpMaxCollectionCount As Long, lpCollectDataTimeout As Long) As LongDeclare PtrSafe Function GetNamedPipeInfo Lib kernel32 Alias GetNamedPipeInfo (ByVal hNamedPipe As LongPtr, lpFlags As Long, lpOutBufferSize As Long, lpInBufferSize As Long, lpMaxInstances As Long) As LongDeclare PtrSafe Function PeekNamedPipe Lib kernel32 Alias PeekNamedPipe (ByVal hNamedPipe As LongPtr, lpBuffer As Any, ByVal nBufferSize As Long, lpBytesRead As Long, lpTotalBytesAvail As Long, lpBytesLeftThisMessage As Long) As LongDeclare PtrSafe Function TransactNamedPipe Lib kernel32 Alias TransactNamedPipe (ByVal hNamedPipe As LongPtr, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesRead As Long, lpOverlapped As OVERLAPPED) As LongDeclare PtrSafe Function CreateMailslot Lib kernel32 Alias CreateMailslotA (ByVal lpName As String, ByVal nMaxMessageSize As Long, ByVal lReadTimeout As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES) As LongPtrDeclare PtrSafe Function GetMailslotInfo Lib kernel32 Alias GetMailslotInfo (ByVal hMailslot As LongPtr, lpMaxMessageSize As Long, lpNextSize As Long, lpMessageCount As Long, lpReadTimeout As Long) As LongDeclare PtrSafe Function SetMailslotInfo Lib kernel32 Alias SetMailslotInfo (ByVal hMailslot As LongPtr, ByVal lReadTimeout As Long) As LongDeclare PtrSafe Function MapViewOfFile Lib kernel32 Alias MapViewOfFile (ByVal hFileMappingObject As LongPtr, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As LongPtr) As LongPtrDeclare PtrSafe Function FlushViewOfFile Lib kernel32 Alias FlushViewOfFile (lpBaseAddress As Any, ByVal dwNumberOfBytesToFlush As LongPtr) As LongDeclare PtrSafe Function UnmapViewOfFile Lib kernel32 Alias UnmapViewOfFile (lpBaseAddress As Any) As LongDeclare PtrSafe Function lstrcmp Lib kernel32 Alias lstrcmpA (ByVal lpString1 As String, ByVal lpString2 As String) As LongDeclare PtrSafe Function lstrcmpi Lib kernel32 Alias lstrcmpiA (ByVal lpString1 As String, ByVal lpString2 As String) As LongDeclare PtrSafe Function lstrlen Lib kernel32 Alias lstrlenA (ByVal lpString As String) As LongDeclare PtrSafe Function lopen Lib kernel32 Alias _lopen (ByVal lpPathName As String, ByVal iReadWrite As Long) As LongDeclare PtrSafe Function lclose Lib kernel32 Alias _lclose (ByVal hFile As Long) As LongDeclare PtrSafe Function lcreat Lib kernel32 Alias _lcreat (ByVal lpPathName As String, ByVal iAttribute As Long) As LongDeclare PtrSafe Function llseek Lib kernel32 Alias _llseek (ByVal hFile As Long, ByVal lOffset As Long, ByVal iOrigin As Long) As LongDeclare PtrSafe Function lread Lib kernel32 Alias _lread (ByVal hFile As Long, lpBuffer As Any, ByVal wBytes As Long) As LongDeclare PtrSafe Function lwrite Lib kernel32 Alias _lwrite (ByVal hFile As Long, ByVal lpBuffer As String, ByVal wBytes As Long) As LongDeclare PtrSafe Function hread Lib kernel32 Alias _hread (ByVal hFile As Long, lpBuffer As Any, ByVal lBytes As Long) As LongDeclare PtrSafe Function hwrite Lib kernel32 Alias _hwrite (ByVal hFile As Long, ByVal lpBuffer As String, ByVal lBytes As Long) As LongDeclare PtrSafe Function TlsAlloc Lib kernel32 Alias TlsAlloc () As LongConst TLS_OUT_OF_INDEXES HFFFFFFFFDeclare PtrSafe Function TlsGetValue Lib kernel32 Alias TlsGetValue (ByVal dwTlsIndex As Long) As LongPtrDeclare PtrSafe Function TlsSetValue Lib kernel32 Alias TlsSetValue (ByVal dwTlsIndex As Long, lpTlsValue As Any) As LongDeclare PtrSafe Function TlsFree Lib kernel32 Alias TlsFree (ByVal dwTlsIndex As Long) As LongDeclare PtrSafe Function SleepEx Lib kernel32 Alias SleepEx (ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As LongDeclare PtrSafe Function WaitForSingleObjectEx Lib kernel32 Alias WaitForSingleObjectEx (ByVal hHandle As LongPtr, ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As LongDeclare PtrSafe Function WaitForMultipleObjectsEx Lib kernel32 Alias WaitForMultipleObjectsEx (ByVal nCount As Long, lpHandles As LongPtr, ByVal bWaitAll As Long, ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long当学员学习到高级阶段如果引用API这个资料可以直接查到64位写法。大多数情况下我们是将低版本的程序文件升级到高版本这时您就不必为如下的错误提示所困扰了我20多年的VBA实践经验全部浓缩在下面的各个教程中