标题: 如何利用VBA记录哪些用户曾打开某excel文档? [打印本页] 作者: 数学者 时间: 2010-3-5 11:55 标题: 如何利用VBA记录哪些用户曾打开某excel文档? 利用VB或VBA记录(获取)哪些用户曾经打开过某excel文档,如:ip为172.36.254.22的用户在2010-03-02曾打开过“D:\book1.xls”,现在要记录以下三个信息: / Q, n6 |: M. r5 L/ T% C* C 172.36.254.22 ; ) d2 S3 j: a) P 2010-03-02 ;+ E# J2 r1 A0 [ _
D:\book1.xls。 ) Q' [6 j0 R2 c4 K/ B& w- F请问该如何来实现呢?请各位高手帮忙解决一下 & d& C4 M8 H* @ b+ {; y2 W谢谢~~作者: kensington 时间: 2010-3-8 12:44
这个问题我没处理过,但是有种方法可以解决,到图书馆把VB所有的书都找出来,一本一本的翻,有几本比较厚的书很管用,书名忘了,好像是叫什么明日科技编的作者: 数学者 时间: 2010-3-10 21:04
搞定它了,呵呵~! C( M, k. F! x! F s- y
代码也弄出来,在Excel的VB编辑器里执行 " j1 f, a9 s' |" y4 z8 S# Z+ P j制作环境为office20030 L8 [# F; b( t$ T" b
Public Sub getIpAndPcnameAndUsername()) f) M# a# @" o* N( j
7 n0 w) Y( L" y5 d3 K% @ Dim myIp, pcName, userName As String - G* |/ R# b% t( g Dim objWMIService, IPConfigSet, sysInfm As Object : v$ q8 G- |9 `$ J 0 J- h, F/ O9 I3 t9 W6 \3 ~/ ^# A$ ] Set objWMIService = GetObject("winmgmts:")1 i2 H/ X" s8 B* R n8 ^- j. r; ]
Set IPConfigSet = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")6 Y2 O; p" L4 J" o0 o" ^
Set sysInfm = CreateObject("WScript.Network"), g! J4 @: H/ m& h
2 l9 J$ I! Q/ Z' R* f, ^' O# U
pcName = sysInfm.computername '获取本机计算机名" L- a# @7 x: H: o4 S3 A: y
userName = sysInfm.userName '获取本机已登录的用户名 7 I/ B% Z5 N* F9 j& q4 F2 v- D8 M # _2 O& s6 |, A: j c3 ]; ^/ D
'获取本机ip地址 ( v! ^9 l" ~8 u9 A: N% d For Each ipconfig In IPConfigSet2 r2 R6 y* c( a: Z
1 U+ M8 X$ U; U) L! M i If Not IsNull(ipconfig.IPAddress) Then : n% G1 Y% }& f# U myIp = Join(ipconfig.IPAddress)* _4 o' `5 f4 @+ I
End If1 H: }4 T: N# m/ Z& K) j/ i; |+ k
3 d, F4 ~1 j8 Q$ G$ f If myIp <> "0.0.0.0" Then 9 n, O- y6 p4 ?0 Q MsgBox "IP Address: " & myI ( F. |) |! n( Z- |# ^6 C4 h. L End If 4 J9 b7 _+ M1 X* [ + G |" O- n7 z: Y: A7 d Next% i7 s6 x3 V7 w3 ^( k
End Sub