- 締切済み
共有しているEXCELシートのアクセス履歴を残すマクロ
共有しているEXCELシート(ver.2000)があり、そのシートを 開いたユーザアカウント(NTドメイン)のアクセス履歴を 残すマクロ等を探しています。 何か良い方法はありますで しょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 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
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 通常、Win32 API のGetUserName で取れるはずですが、Excelでは、同様のEnviron 関数も使えるはずです。引数は、USERDOMAIN か、または USERNAME でよいと思います。 ファイルを開ける時か、閉じた時にでも、どこかに出力すればよいと思います。
補足
貴重な御回答ありがとうございます。 Environ関数などを試そうとしましたが、初心者の為、調べ方に 行き詰まってしまいました。 例えば、aaa.xlsというファイルを開けたときに\\fileserver\rireki.txtというファイルに出力したい場合にどのようなコードになるのでしょうか? サンプルとして一部教えていただければ幸いです。
- popesyu
- ベストアンサー率36% (1782/4883)
その対象の共有エクセルファイルを開くためのエクセルファイルを作ってそちらで一種のログインの認証と履歴を取るようにすればどうでしょう。別にワンクッションおくのはエクセルでなくてもかまいませんが。
補足
回答ありがとうございます。 「エクセルファイルからエクセルファイルを呼び出す」ということをするには、具体的にどのようにすれば良いのでしょうか? 知識不足ですので、具体的な方法か参考になるサイトはありませんでしょうか。
お礼
大変丁寧な回答ありがとうございます。 教えていただいた方法で色々と試してみたいと思います。