数学建模社区-数学中国

标题: 如何利用VBA记录哪些用户曾打开某excel文档? [打印本页]

作者: 数学者    时间: 2010-3-5 11:55
标题: 如何利用VBA记录哪些用户曾打开某excel文档?
利用VB或VBA记录(获取)哪些用户曾经打开过某excel文档,如:ip为172.36.254.22的用户在2010-03-02曾打开过“D:\book1.xls”,现在要记录以下三个信息:& e9 W2 C3 u0 e7 }7 H9 n$ ~1 }
      172.36.254.22 ;
# K) a8 T0 p& [2 u8 j# k; `      2010-03-02 ;
& R8 S( x  m+ C0 _* f      D:\book1.xls。
/ G/ O: Z/ G( q$ w请问该如何来实现呢?请各位高手帮忙解决一下
" N7 b2 C  J8 t3 Z谢谢~~
作者: kensington    时间: 2010-3-8 12:44
这个问题我没处理过,但是有种方法可以解决,到图书馆把VB所有的书都找出来,一本一本的翻,有几本比较厚的书很管用,书名忘了,好像是叫什么明日科技编的
作者: 数学者    时间: 2010-3-10 21:04
搞定它了,呵呵~# `* X9 o2 a; \2 o1 n. e. q& M8 \( K
代码也弄出来,在Excel的VB编辑器里执行
! _' d- L7 H( F! b; i0 I6 m制作环境为office2003
2 Q  h6 |$ j5 t. F" A6 M% PPublic Sub getIpAndPcnameAndUsername()( ^2 ~& m3 P: R$ ^" r/ }

1 m( i+ B7 X6 i0 b& S    Dim myIp, pcName, userName As String5 m% C6 v; }$ p) `
    Dim objWMIService, IPConfigSet, sysInfm As Object$ c  F( p+ C$ Z, Q2 y9 a. P3 J9 o! w
    4 N& y" v/ T$ U. ^; A9 d
    Set objWMIService = GetObject("winmgmts:")$ O' S1 l- Y2 C# o: B
    Set IPConfigSet = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")! s$ Y& f0 w; x- x. e
    Set sysInfm = CreateObject("WScript.Network")
4 {8 C7 [5 U: N1 s/ ]+ d3 @/ X    & e0 o9 d( I4 C
    pcName = sysInfm.computername  '获取本机计算机名5 E8 G9 m. j6 Y( H" [9 G2 \0 [
    userName = sysInfm.userName    '获取本机已登录的用户名
# }1 A# G4 A: |1 T  i    # k6 Q5 C% a' X% Q% m+ c
    '获取本机ip地址4 V! a+ |8 n; C8 i8 l- p
    For Each ipconfig In IPConfigSet
7 |, X, c7 n) C% N+ l   
# R$ D% v5 V7 Y( x        If Not IsNull(ipconfig.IPAddress) Then
1 V; a8 c; N: {- u2 T            myIp = Join(ipconfig.IPAddress)4 e/ P/ a8 {' N
        End If' p5 F8 Z* M  J
        ( ]- s* h4 n5 S' ^
        If myIp <> "0.0.0.0" Then
+ i; Y* o) O# g7 p# [2 _3 Q            MsgBox "IP Address: " & myI
1 w4 g& f  u9 J; t: m( S# U& P     End If
1 N& B3 N; c1 m  t) v        : T% e- u4 l- o- x) C2 e* |
    Next
% Y) E: g- y# i+ ]6 MEnd Sub




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5