资源描述:
《VBA中调用API实现局域网连接的常用操作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VBA中调用API实现局域网连接的常用操作如果常用到局域网内的其它机器上的文件,而且文件夹路径固定,又不想每次都打开该路径,可用VBA连接读取文件,这里完成“创建映射”、“断开映射”、“是否已创建映射”、“取映射路径”、“生成一个本地未用的盘符符号”、“取得本地盘符数组”等6个函数,基本上可满足平时文件操作的需要了这里使用API来实现‘以下代码可直接粘到EXCEL的VBA模块里面'ConstNO_ERROR=0'ConstCONNECT_UPDATE_PROFILE=&H1'ConstRESOURCETYPE_DISK=&H1'ConstRESOURCETYPE
2、_PRINT=&H2'ConstRESOURCETYPE_ANY=&H0'ConstRESOURCE_CONNECTED=&H1'ConstRESOURCE_REMEMBERED=&H3'ConstRESOURCE_GLOBALNET=&H2'ConstRESOURCEDISPLAYTYPE_DOMAIN=&H1'ConstRESOURCEDISPLAYTYPE_GENERIC=&H0'ConstRESOURCEDISPLAYTYPE_SERVER=&H2'ConstRESOURCEDISPLAYTYPE_SHARE=&H3'ConstRESOURCEUSAGE
3、_CONNECTABLE=&H1'ConstRESOURCEUSAGE_CONTAINER=&H2PrivateTypeNETRESOURCEdwScopeAsLongdwTypeAsLongdwDisplayTypeAsLongdwUsageAsLonglpLocalNameAsStringlpRemoteNameAsStringlpCommentAsStringlpProviderAsStringEndTypePrivateDeclareFunctionWNetAddConnection2Lib"mpr.dll"Alias"WNetAddConnection
4、2A"(lpNetResourceAsNETRESOURCE,ByVallpPasswordAsString,ByVallpUserNameAsString,ByValdwFlagsAsLong)AsLongPrivateDeclareFunctionWNetCancelConnection2Lib"mpr.dll"Alias"WNetCancelConnection2A"(ByVallpNameAsString,ByValdwFlagsAsLong,ByValfForceAsLong)AsLongPrivateDeclareFunctionWNetGetCon
5、nectionLib"mpr.dll"Alias"WNetGetConnectionA"(ByVallpszLocalNameAsString,ByVallpszRemoteNameAsString,cbRemoteNameAsLong)AsLongFunction创建映射(网络路径AsString,用户名AsString,密码AsString,本地盘符AsString)AsBooleanDimNetRAsNETRESOURCEDimErrInfoAsLongDimpfAsStringDimljAsStringpf=本地盘符IfRight(本地盘符,1)<>":
6、"Thenpf=pf&":"EndIflj=网络路径IfRight(lj,1)=""Thenlj=Left(lj,Len(lj)-1)EndIfNetR.dwScope=&H2NetR.dwType=&H1NetR.dwDisplayType=&H3NetR.dwUsage=&H1NetR.lpLocalName=pfNetR.lpRemoteName=ljErrInfo=WNetAddConnection2(NetR,密码,用户名,&H1)IfErrInfo=0Then创建映射=TrueElse创建映射=FalseEndIfEndFunctionFuncti
7、on断开映射(本地盘符AsString)AsBooleanDimErrInfoAsLongDimstrLocalNameAsStringstrLocalName=本地盘符IfRight(strLocalName,1)<>":"ThenstrLocalName=strLocalName&":"EndIfErrInfo=WNetCancelConnection2(strLocalName,&H1,False)IfErrInfo=0Then断开映射=TrueElse断开映射=FalseEndIfEndFunctionFunction是否已创建映射(盘符AsString
8、)AsBooleanDi