标题: 如何利用VBA记录哪些用户曾打开某excel文档? [打印本页] 作者: 数学者 时间: 2010-3-5 11:55 标题: 如何利用VBA记录哪些用户曾打开某excel文档? 利用VB或VBA记录(获取)哪些用户曾经打开过某excel文档,如:ip为172.36.254.22的用户在2010-03-02曾打开过“D:\book1.xls”,现在要记录以下三个信息: ( j5 H0 z7 w3 g$ `4 h/ ~6 y 172.36.254.22 ; 7 M6 h" ?" ~# K; S1 x# L8 L1 `, P( z) ]
2010-03-02 ; 3 m2 ~' s3 V* s4 B D:\book1.xls。1 {/ Q5 S: Y# w* P, |( L1 f
请问该如何来实现呢?请各位高手帮忙解决一下 $ K( t: s9 b R; N1 ?( }; S T谢谢~~作者: kensington 时间: 2010-3-8 12:44
这个问题我没处理过,但是有种方法可以解决,到图书馆把VB所有的书都找出来,一本一本的翻,有几本比较厚的书很管用,书名忘了,好像是叫什么明日科技编的作者: 数学者 时间: 2010-3-10 21:04
搞定它了,呵呵~ + a. e6 a' W. B0 N代码也弄出来,在Excel的VB编辑器里执行5 v1 s# U6 ?3 @8 n# ?% c. s# B
制作环境为office2003" _# U `! d2 L% h& P8 [; a
Public Sub getIpAndPcnameAndUsername() ; U8 i C9 U) ^0 _! w3 t/ M( Y& U; Z/ X; f
Dim myIp, pcName, userName As String4 a! j7 J. @1 C' w& }
Dim objWMIService, IPConfigSet, sysInfm As Object, V" ?5 k) U3 }) ?! O. G
2 g6 I( _3 R% t4 O Set objWMIService = GetObject("winmgmts:") * _/ N. ~8 |" W, a- Q; t$ U Set IPConfigSet = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")0 `$ s& d' z0 y4 G) Q6 T
Set sysInfm = CreateObject("WScript.Network") ! {3 z: W8 ]2 H) J) v1 F- G " m" g0 m. R4 e' C. A+ S
pcName = sysInfm.computername '获取本机计算机名 3 q$ x% c6 U. f+ C& ^ userName = sysInfm.userName '获取本机已登录的用户名 Y k f" T, x( h1 P+ g
2 o3 H& `0 ~- S! k7 {, }+ c
'获取本机ip地址6 g- L9 A5 W( I4 `( A" x
For Each ipconfig In IPConfigSet + _% ~8 L7 x3 P: Q3 ]3 ^$ s 0 H. E6 |8 p' j* j* U
If Not IsNull(ipconfig.IPAddress) Then8 G! p" q' [9 Z2 C0 Y
myIp = Join(ipconfig.IPAddress) % a; g- S: r" e3 F+ [/ F End If ( m, N1 s; } X" K7 q ( Q- L; ^5 u1 y
If myIp <> "0.0.0.0" Then/ G0 ^: E9 L4 u3 G) i; L
MsgBox "IP Address: " & myI. K% w& ?6 W$ X, G
End If( j: `& `* a+ A9 R5 w7 u/ A4 g g