プロが教える店舗&オフィスのセキュリティ対策術

共有しているEXCELシート(ver.2000)があり、そのシートを
開いたユーザアカウント(NTドメイン)のアクセス履歴を
残すマクロ等を探しています。 何か良い方法はありますで
しょうか?

A 回答 (3件)

こんにちは。



Environ関数 は、VBAの関数です。

例:
buf = Environ("USERNAME")

aaa.xls の標準モジュールに、Sub Auto_Open() という名前で以下を登録したらどうかな、と思います。こちらは、私のPCでは、ネットワークを構築していませんので、試していません。ですから、出来るかどうかは分かりません。

 Dim buf As String
 Dim Fno As Integer
 Const FILENAME As String = "\\fileserver\rireki.txt"
 buf = Environ("USERNAME") 'または、"USERDOMAIN"
 Fno = FreeFile()
 Open FILENAME For Append As #Fno
  Print #Fno, buf & "," & Format(Now(), "yy/mm/dd hh:nn:ss")
 Close #Fno
    • good
    • 3
この回答へのお礼

大変丁寧な回答ありがとうございます。
教えていただいた方法で色々と試してみたいと思います。

お礼日時:2006/09/24 19:01

こんにちは。



通常、Win32 API のGetUserName で取れるはずですが、Excelでは、同様のEnviron 関数も使えるはずです。引数は、USERDOMAIN か、または USERNAME  でよいと思います。

ファイルを開ける時か、閉じた時にでも、どこかに出力すればよいと思います。

この回答への補足

貴重な御回答ありがとうございます。
Environ関数などを試そうとしましたが、初心者の為、調べ方に
行き詰まってしまいました。
例えば、aaa.xlsというファイルを開けたときに\\fileserver\rireki.txtというファイルに出力したい場合にどのようなコードになるのでしょうか?
サンプルとして一部教えていただければ幸いです。

補足日時:2006/09/24 12:18
    • good
    • 3

その対象の共有エクセルファイルを開くためのエクセルファイルを作ってそちらで一種のログインの認証と履歴を取るようにすればどうでしょう。

別にワンクッションおくのはエクセルでなくてもかまいませんが。

この回答への補足

回答ありがとうございます。 「エクセルファイルからエクセルファイルを呼び出す」ということをするには、具体的にどのようにすれば良いのでしょうか? 知識不足ですので、具体的な方法か参考になるサイトはありませんでしょうか。

補足日時:2006/09/24 10:05
    • good
    • 6

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A