摘要:跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高自己的工作效率,可以有时间多陪
跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高自己的工作效率,可以有时间多陪陪父母,多陪陪家人,何乐而不为呢?我的教程一共九套,从入门开始一直讲到程序的分发,是学习利用VBA的实用教程。这份API资料是随高级教程赠送的.
这讲我们继续学习VBA 64位API声明语句第006讲,这些内容是MS的权威资料,看似枯燥,但对于想学习API函数的朋友是非常有用的。
【分享成果,随喜正能量】 千磨万击还坚劲,任尔东西南北风。生活是自己的,你选择怎样的生活,就会成就怎样的你,与其抱怨这个世界不美好,不如用自己的努力,美好和幸运自然不期而至。。
当学员学习到高级阶段,如果引用API,这个资料可以直接查到64位写法。大多数情况下我们是将低版本的程序文件升级到高版本,这时您就不必为如下的错误提示所困扰了:
Const FILE_READ_EA = (&H8) ' file directory
Const FILE_READ_PROPERTIES = FILE_READ_EA
Const FILE_WRITE_EA = (&H10) ' file directory
Const FILE_WRITE_PROPERTIES = FILE_WRITE_EA
Const FILE_EXECUTE = (&H20) ' file
Const FILE_TRAVERSE = (&H20) ' directory
Const FILE_DELETE_CHILD = (&H40) ' directory
Const FILE_READ_ATTRIBUTES = (&H80) ' all
Const FILE_WRITE_ATTRIBUTES = (&H100) ' all
Const FILE_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &H1FF)
Const FILE_GENERIC_READ = (STANDARD_RIGHTS_READ Or FILE_READ_DATA Or FILE_READ_ATTRIBUTES Or FILE_READ_EA Or SYNCHRONIZE)
Const FILE_GENERIC_WRITE = (STANDARD_RIGHTS_WRITE Or FILE_WRITE_DATA Or FILE_WRITE_ATTRIBUTES Or FILE_WRITE_EA Or FILE_APPEND_DATA Or SYNCHRONIZE)
Const FILE_GENERIC_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or FILE_READ_ATTRIBUTES Or FILE_EXECUTE Or SYNCHRONIZE)
Const FILE_SHARE_READ = &H1
Const FILE_SHARE_WRITE = &H2
Const FILE_ATTRIBUTE_READONLY = &H1
Const FILE_ATTRIBUTE_HIDDEN = &H2
Const FILE_ATTRIBUTE_SYSTEM = &H4
Const FILE_ATTRIBUTE_DIRECTORY = &H10
Const FILE_ATTRIBUTE_ARCHIVE = &H20
Const FILE_ATTRIBUTE_NORMAL = &H80
Const FILE_ATTRIBUTE_TEMPORARY = &H100
Const FILE_ATTRIBUTE_COMPRESSED = &H800
Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1
Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2
Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4
Const FILE_NOTIFY_CHANGE_SIZE = &H8
Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10
Const FILE_NOTIFY_CHANGE_SECURITY = &H100
Const MAILSLOT_NO_MESSAGE = (-1)
Const MAILSLOT_WAIT_FOREVER = (-1)
Const FILE_CASE_SENSITIVE_SEARCH = &H1
Const FILE_CASE_PRESERVED_NAMES = &H2
Const FILE_UNICODE_ON_DISK = &H4
Const FILE_PERSISTENT_ACLS = &H8
Const FILE_FILE_COMPRESSION = &H10
Const FILE_VOLUME_IS_COMPRESSED = &H8000&
Const IO_COMPLETION_MODIFY_STATE = &H2
Const IO_COMPLETION_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &H3)
Const DUPLICATE_CLOSE_SOURCE = &H1
Const DUPLICATE_SAME_ACCESS = &H2
' //////////////////////////////////////////////////////////////////////
' //
' ACCESS MASK //
' //
'
' Define the access mask as a Longword sized structure divided up as
' follows:
' typedef struct _ACCESS_MASK {
' WORD SpecificRights;
' Byte StandardRights;
' Byte AccessSystemAcl : 1;
' Byte Reserved : 3;
' Byte GenericAll : 1;
' Byte GenericExecute : 1;
' Byte GenericWrite : 1;
' Byte GenericRead : 1;
' } ACCESS_MASK;
' typedef ACCESS_MASK *PACCESS_MASK;
'
' but to make life simple for programmer's we'll allow them to specify
' a desired access mask by simply OR'ing together mulitple single rights
' and treat an access mask as a DWORD. For example
'
' DesiredAccess = DELETE Or READ_CONTROL
'
' So we'll declare ACCESS_MASK as DWORD
'
' begin_ntddk begin_nthal begin_ntifs
' //
' ACCESS TYPES //
' //
'
' The following are masks for the predefined standard access types
' AccessSystemAcl access type
Const ACCESS_SYSTEM_SECURITY = &H1000000
' MaximumAllowed access type
Const MAXIMUM_ALLOWED = &H2000000
' These are the generic rights.
Const GENERIC_READ = &H80000000
Const GENERIC_WRITE = &H40000000
Const GENERIC_EXECUTE = &H20000000
Const GENERIC_ALL = &H10000000
' Define the generic mapping array. This is used to denote the
' mapping of each generic access right to a specific access mask.
Type GENERIC_MAPPING
GenericRead As Long
GenericWrite As Long
GenericExecute As Long
GenericAll As Long
End Type
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
来源:VBA语言专业教育