标题: 如何利用VBA记录哪些用户曾打开某excel文档? [打印本页] 作者: 数学者 时间: 2010-3-5 11:55 标题: 如何利用VBA记录哪些用户曾打开某excel文档? 利用VB或VBA记录(获取)哪些用户曾经打开过某excel文档,如:ip为172.36.254.22的用户在2010-03-02曾打开过“D:\book1.xls”,现在要记录以下三个信息:3 g- `$ E ] ?) h% c& B
172.36.254.22 ; 9 i8 V- h5 z1 Q' \) u 2010-03-02 ; : z0 a( G! Q3 [4 _5 H! k D:\book1.xls。, ~# _1 w( G4 L5 x( I1 }! G7 t
请问该如何来实现呢?请各位高手帮忙解决一下 . q$ ~& G& v3 V' B" n谢谢~~作者: kensington 时间: 2010-3-8 12:44
这个问题我没处理过,但是有种方法可以解决,到图书馆把VB所有的书都找出来,一本一本的翻,有几本比较厚的书很管用,书名忘了,好像是叫什么明日科技编的作者: 数学者 时间: 2010-3-10 21:04
搞定它了,呵呵~, U3 Z: [% v9 d3 h+ x) H# n
代码也弄出来,在Excel的VB编辑器里执行 ) q; d: o$ X: i- L3 q4 ?制作环境为office2003 1 M' E( Z! A4 [4 X2 o$ ]# m0 SPublic Sub getIpAndPcnameAndUsername()7 J$ J5 \( G7 I6 V) X9 w
6 F& V! M# ~8 b
Dim myIp, pcName, userName As String3 I' M: R9 F: g4 D
Dim objWMIService, IPConfigSet, sysInfm As Object. Z" S) n- ]8 \3 `0 T3 i7 ~( p
/ o! `7 e* C) y% f# G1 k; |, L Set objWMIService = GetObject("winmgmts:"). q3 D0 B4 O8 x, z7 B
Set IPConfigSet = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE") + v- U6 Z7 w3 {/ t- p" L Set sysInfm = CreateObject("WScript.Network") 7 F+ V1 {7 }# x5 C, Z 1 s+ z* z0 U+ q9 \5 B
pcName = sysInfm.computername '获取本机计算机名/ S& [9 F) E7 Y7 o6 C7 q
userName = sysInfm.userName '获取本机已登录的用户名5 @# v6 \* J j7 K4 M* Z; E' Q
. Q; D& j, _8 v8 m) e '获取本机ip地址 5 Y- q y6 K, Z$ l: A/ `& C$ V For Each ipconfig In IPConfigSet2 [4 j7 V# |6 i- ^% E, n+ `6 u
: K8 H% @( C9 Q0 T2 Y- o& l2 v
If Not IsNull(ipconfig.IPAddress) Then & ^2 o1 |1 P5 z4 z# K$ A, v myIp = Join(ipconfig.IPAddress)& o3 G, A' f9 U, C
End If 4 e6 e, f$ S5 O8 @, V2 r # F/ [; p3 |* {8 r) D0 D7 w3 m1 @ If myIp <> "0.0.0.0" Then . ?+ E' C# ]4 K1 k MsgBox "IP Address: " & myI$ u& ~/ i8 v$ r% l5 T
End If / g4 A1 {0 u9 ? / O7 A7 v. {1 }. n& g& c
Next/ @% j& ^0 ]( {
End Sub