标题: 如何利用VBA记录哪些用户曾打开某excel文档? [打印本页] 作者: 数学者 时间: 2010-3-5 11:55 标题: 如何利用VBA记录哪些用户曾打开某excel文档? 利用VB或VBA记录(获取)哪些用户曾经打开过某excel文档,如:ip为172.36.254.22的用户在2010-03-02曾打开过“D:\book1.xls”,现在要记录以下三个信息: 8 }0 ]+ s4 V+ Z# @ 172.36.254.22 ; 2 L* P# `" H I- ^; l 2010-03-02 ; 0 a- T8 A) F5 c. |3 h D:\book1.xls。. x6 i. O2 U0 X
请问该如何来实现呢?请各位高手帮忙解决一下 ( s9 \9 P9 O4 E1 H" E谢谢~~作者: kensington 时间: 2010-3-8 12:44
这个问题我没处理过,但是有种方法可以解决,到图书馆把VB所有的书都找出来,一本一本的翻,有几本比较厚的书很管用,书名忘了,好像是叫什么明日科技编的作者: 数学者 时间: 2010-3-10 21:04
搞定它了,呵呵~7 h2 [- |* m8 F+ k" L1 j
代码也弄出来,在Excel的VB编辑器里执行8 v7 ]8 G+ X0 T9 I3 g; F+ R
制作环境为office2003 . R( D* Z& u0 N Y/ h4 ePublic Sub getIpAndPcnameAndUsername() ( o* y* r( D# i: N7 i1 r8 z+ ~. B6 d+ f
Dim myIp, pcName, userName As String ( l6 {% T" B5 }5 p Dim objWMIService, IPConfigSet, sysInfm As Object& X! R/ D! a- ^ q* v
5 S. b4 J/ o: Y- x
Set objWMIService = GetObject("winmgmts:")- A' {6 u9 B$ g& \' Z
Set IPConfigSet = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")( s. N/ p1 A: K3 E: U# ?, K: h
Set sysInfm = CreateObject("WScript.Network") # b. U6 E; s+ L% L5 P/ P; Z " V4 }# A$ g* t- O7 V$ x
pcName = sysInfm.computername '获取本机计算机名 5 J. R) Z6 h' M; J, e) t, N userName = sysInfm.userName '获取本机已登录的用户名% D, t T; P @. H
+ V7 Q! p7 Y/ z) q& h& r8 S '获取本机ip地址 $ d S' l- O( b( Q; ?+ z% J For Each ipconfig In IPConfigSet & W I5 {, z6 q2 U$ r% V3 e2 \ . D. Q- U/ ?& |% O
If Not IsNull(ipconfig.IPAddress) Then, f% h j( d1 E5 W; }
myIp = Join(ipconfig.IPAddress)( ~6 ~6 p( N. Q5 c9 w& e
End If+ e7 m3 V" [- l& C5 E5 Q
* ]5 ~' h; j; u; ~- Z& p
If myIp <> "0.0.0.0" Then; N V6 ` p4 \! `; l- ` i4 t9 C
MsgBox "IP Address: " & myI) v* L" W( ], C
End If. j' d( u7 K D/ N3 t
/ m/ F5 x6 R4 o1 i
Next G7 W/ X5 x: n
End Sub