当前位置: 首页 > news >正文

VBA 64位API声明语句第017讲

跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高自己的工作效率,可以有时间多陪陪父母,多陪陪家人,何乐而不为呢?我的教程一共九套,从入门开始一直讲到程序的分发,是学习利用VBA的实用教程。这份API资料是随高级教程赠送的.

这讲我们继续学习VBA 64位API声明语句第017讲,这些内容是MS的权威资料,看似枯燥,但对于想学习API函数的朋友是非常有用的。

【分享成果,随喜正能量】34每个人在自己的时区都有自己的步程。不用嫉妒或嘲笑他人。他们都在自己的时区里,你也是!等待正确的行动时机,放轻松。你虽然没有领先但也没有落后。在命运为你安排的属于自己的时区里,一切都准时。

当学员学习到高级阶段,如果引用API,这个资料可以直接查到64位写法。大多数情况下我们是将低版本的程序文件升级到高版本,这时您就不必为如下的错误提示所困扰了:

' COMM declarations

Declare PtrSafe Function SetCommState Lib "kernel32" Alias "SetCommState" (ByVal hCommDev As LongPtr, lpDCB As DCB) As Long

Declare PtrSafe Function SetCommTimeouts Lib "kernel32" Alias "SetCommTimeouts" (ByVal hFile As LongPtr, lpCommTimeouts As COMMTIMEOUTS) As Long

Declare PtrSafe Function GetCommState Lib "kernel32" Alias "GetCommState" (ByVal nCid As LongPtr, lpDCB As DCB) As Long

Declare PtrSafe Function GetCommTimeouts Lib "kernel32" Alias "GetCommTimeouts" (ByVal hFile As LongPtr, lpCommTimeouts As COMMTIMEOUTS) As Long

Declare PtrSafe Function PurgeComm Lib "kernel32" Alias "PurgeComm" (ByVal hFile As LongPtr, ByVal dwFlags As Long) As Long

Declare PtrSafe Function BuildCommDCB Lib "kernel32" Alias "BuildCommDCBA" (ByVal lpDef As String, lpDCB As DCB) As Long

Declare PtrSafe Function BuildCommDCBAndTimeouts Lib "kernel32" Alias "BuildCommDCBAndTimeoutsA" (ByVal lpDef As String, lpDCB As DCB, lpCommTimeouts As COMMTIMEOUTS) As Long

Declare PtrSafe Function TransmitCommChar Lib "kernel32" Alias "TransmitCommChar" (ByVal nCid As LongPtr, ByVal cChar As Byte) As Long

Declare PtrSafe Function SetCommBreak Lib "kernel32" Alias "SetCommBreak" (ByVal nCid As LongPtr) As Long

Declare PtrSafe Function SetCommMask Lib "kernel32" Alias "SetCommMask" (ByVal hFile As LongPtr, ByVal dwEvtMask As Long) As Long

Declare PtrSafe Function ClearCommBreak Lib "kernel32" Alias "ClearCommBreak" (ByVal nCid As LongPtr) As Long

Declare PtrSafe Function ClearCommError Lib "kernel32" Alias "ClearCommError" (ByVal hFile As LongPtr, lpErrors As Long, lpStat As COMSTAT) As Long

Declare PtrSafe Function SetupComm Lib "kernel32" Alias "SetupComm" (ByVal hFile As Long, ByVal dwInQueue As Long, ByVal dwOutQueue As Long) As Long

Declare PtrSafe Function EscapeCommFunction Lib "kernel32" Alias "EscapeCommFunction" (ByVal nCid As LongPtr, ByVal nFunc As Long) As Long

Declare PtrSafe Function GetCommMask Lib "kernel32" Alias "GetCommMask" (ByVal hFile As LongPtr, lpEvtMask As Long) As Long

Declare PtrSafe Function GetCommProperties Lib "kernel32" Alias "GetCommProperties" (ByVal hFile As LongPtr, lpCommProp As COMMPROP) As Long

Declare PtrSafe Function GetCommModemStatus Lib "kernel32" Alias "GetCommModemStatus" (ByVal hFile As LongPtr, lpModemStat As Long) As Long

Declare PtrSafe Function WaitCommEvent Lib "kernel32" Alias "WaitCommEvent" (ByVal hFile As LongPtr, lpEvtMask As Long, lpOverlapped As OVERLAPPED) As Long

Declare PtrSafe Function SetTapePosition Lib "kernel32" Alias "SetTapePosition" (ByVal hDevice As LongPtr, ByVal dwPositionMethod As Long, ByVal dwPartition As Long, ByVal dwOffsetLow As Long, ByVal dwOffsetHigh As Long, ByVal bimmediate As Long) As Long

Declare PtrSafe Function GetTapePosition Lib "kernel32" Alias "GetTapePosition" (ByVal hDevice As LongPtr, ByVal dwPositionType As Long, lpdwPartition As Long, lpdwOffsetLow As Long, lpdwOffsetHigh As Long) As Long

Declare PtrSafe Function PrepareTape Lib "kernel32" Alias "PrepareTape" (ByVal hDevice As LongPtr, ByVal dwOperation As Long, ByVal bimmediate As Long) As Long

Declare PtrSafe Function EraseTape Lib "kernel32" Alias "EraseTape" (ByVal hDevice As LongPtr, ByVal dwEraseType As Long, ByVal bimmediate As Long) As Long

Declare PtrSafe Function CreateTapePartition Lib "kernel32" Alias "CreateTapePartition" (ByVal hDevice As LongPtr, ByVal dwPartitionMethod As Long, ByVal dwCount As Long, ByVal dwSize As Long) As Long

Declare PtrSafe Function WriteTapemark Lib "kernel32" Alias "WriteTapemark" (ByVal hDevice As LongPtr, ByVal dwTapemarkType As Long, ByVal dwTapemarkCount As Long, ByVal bimmediate As Long) As Long

Declare PtrSafe Function GetTapeStatus Lib "kernel32" Alias "GetTapeStatus" (ByVal hDevice As LongPtr) As Long

Declare PtrSafe Function GetTapeParameters Lib "kernel32" Alias "GetTapeParameters" (ByVal hDevice As LongPtr, ByVal dwOperation As Long, lpdwSize As Long, lpTapeInformation As Any) As Long

Const GET_TAPE_MEDIA_INFORMATION = 0

Const GET_TAPE_DRIVE_INFORMATION = 1

Declare PtrSafe Function SetTapeParameters Lib "kernel32" Alias "SetTapeParameters" (ByVal hDevice As LongPtr, ByVal dwOperation As Long, lpTapeInformation As Any) As Long

Const SET_TAPE_MEDIA_INFORMATION = 0

Const SET_TAPE_DRIVE_INFORMATION = 1

Declare PtrSafe Function Beep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Declare PtrSafe Function MulDiv Lib "kernel32" Alias "MulDiv" (ByVal nNumber As Long, ByVal nNumerator As Long, ByVal nDenominator As Long) As Long

Declare PtrSafe Sub GetSystemTime Lib "kernel32" Alias "GetSystemTime" (lpSystemTime As SYSTEMTIME)

Declare PtrSafe Function SetSystemTime Lib "kernel32" Alias "SetSystemTime" (lpSystemTime As SYSTEMTIME) As Long

Declare PtrSafe Sub GetLocalTime Lib "kernel32" Alias "GetLocalTime" (lpSystemTime As SYSTEMTIME)

Declare PtrSafe Function SetLocalTime Lib "kernel32" Alias "SetLocalTime" (lpSystemTime As SYSTEMTIME) As Long

Declare PtrSafe Sub GetSystemInfo Lib "kernel32" Alias "GetSystemInfo" (lpSystemInfo As SYSTEM_INFO)

Type TIME_ZONE_INFORMATION

Bias As Long

StandardName(0 To 31) As Integer

StandardDate As SYSTEMTIME

StandardBias As Long

DaylightName(0 To 31) As Integer

DaylightDate As SYSTEMTIME

DaylightBias As Long

End Type

Declare PtrSafe Function GetTimeZoneInformation Lib "kernel32" Alias "GetTimeZoneInformation" (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long

Declare PtrSafe Function SetTimeZoneInformation Lib "kernel32" Alias "SetTimeZoneInformation" (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long

' Routines to convert back and forth

' between system time and file time

Declare PtrSafe Function SystemTimeToFileTime Lib "kernel32" Alias "SystemTimeToFileTime" (lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME) As Long

Declare PtrSafe Function FileTimeToLocalFileTime Lib "kernel32" Alias "FileTimeToLocalFileTime" (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long

Declare PtrSafe Function LocalFileTimeToFileTime Lib "kernel32" Alias "LocalFileTimeToFileTime" (lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long

Declare PtrSafe Function FileTimeToSystemTime Lib "kernel32" Alias "FileTimeToSystemTime" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long

Declare PtrSafe Function CompareFileTime Lib "kernel32" Alias "CompareFileTime" (lpFileTime1 As FILETIME, lpFileTime2 As FILETIME) As Long

Declare PtrSafe Function FileTimeToDosDateTime Lib "kernel32" Alias "FileTimeToDosDateTime" (lpFileTime As FILETIME, ByVal lpFatDate As LongPtr, ByVal lpFatTime As LongPtr) As Long

Declare PtrSafe Function DosDateTimeToFileTime Lib "kernel32" Alias "DosDateTimeToFileTime" (ByVal wFatDate As Long, ByVal wFatTime As Long, lpFileTime As FILETIME) As Long

#If Win64 Then

Declare PtrSafe Function GetTickCount64 Lib "kernel32" Alias "GetTickCount64" () As LongLong

#End If

Declare PtrSafe Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long

Declare PtrSafe Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As LongPtr) As Long

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

http://www.jsqmd.com/news/339866/

相关文章:

  • 深度测评:SRM采购管理系统选型平台如何成为企业降本增效的“导航仪”?
  • ue metahuman 绑定头发
  • 应对海量编曲配乐订单,AI编曲软件让原创音乐人实现批量高产
  • xbox手柄驱动下载 新手也能快速安装
  • ABI2026银发产业大会关键成果:兴趣岛以“兴趣 +”探索产业融合新路径
  • 滚柱导轨润滑周期预测
  • LeetCode 热题 100--字母异位词分组
  • 2026-02-04 全国各地响应最快的 BT Tracker 服务器(联通版)
  • 何小鹏发布XPENG IRON仿生骨骼与肌肉格构设计:生物力学重塑人形机器人
  • 电车屋漏偏逢连夜雨,燃油车凶猛反扑,完全无力抵御攻势!外资车将乘胜追击!
  • 2026年汽车4S店迎宾讲解机器人技术深度解析与主流产品应用 - 智造出海
  • 智谱开源GLM-OCR:0.9B小模型在复杂文档处理登顶SOTA
  • 如何在相册里设置联系方式,让客户随时找我?看这里!
  • 深度解析支持定制欢迎语的展厅迎宾机器人:核心技术架构与主流产品评测 - 智造出海
  • 大型语言模型的 MOE 和 MOA
  • YOLO26涨点改进 | 独家创新,特征融合涨点改进篇 | TGRS 2025 | 引入ATEM仿射变换融合增强模块,含多种创新改进点,对边缘和纹理信息进行自适应增强,提升小目标和弱目标检测能力
  • AI模型推理延迟突增?架构师教你:模型轻量化+缓存优化应急响应技巧
  • 解锁更多编曲玩法,AI编曲软件为原创音乐人补充歌曲创作思路
  • Claude, Cursor, Aider, Copilot,AI编程助手该选哪个?
  • AI编曲软件激发歌曲创作灵感,原创音乐人轻松跨越思路障碍
  • 深蓝海域中标大型机电企业大模型知识工程平台项目
  • 分发安卓证书在线生成:一键搞定应用签名,安全便捷有保障
  • 大数据领域 Hive 的监控与调优策略
  • 老板必须盯的5个生产指标,90%的工厂一个都没盯对!
  • 网络流量监控神器 , Wireshark看着太累了
  • ubuntu 新建文件夹软连接
  • 面试-Tokenizer训练
  • 一文理清好人事管理的底层思维是什么
  • 绿联科技冲刺港股:9个月营收64亿利润4.7亿 绿联管理与和顺四号共套现近4亿
  • 大数据平台中Eureka的多数据中心部署方案