【無料配信♪】Renta !全タテコミ作品第1話

エクセルで日計表を作りました。各部署の方がみます。どうでもいいのですが、このエクセルの日計表に何回アクセスしてきたかを確認したいのです。
ホームページにあるようなアクセス件数と同じように。
アクセスが低ければ日計表の価値も低いのかなって考えもできるかと思います。アドバイスおねがいします。

A 回答 (1件)

アクセスカウンタを設置するという直接の回答ではありませんが。



以下はそのファイルを開いたログ(記録)を残すマクロです。

Private Sub Workbook_Open()
Const logFile As String = "excelLog.txt"
Dim fileNo As Integer
Dim apPath As String

apPath = ActiveWorkbook.Path
If Right(apPath, 1) <> "\" Then apPath = apPath & "\"

fileNo = FreeFile
If Dir(apPath & logFile) = "" Then
Open apPath & logFile For Output As fileNo
Else
Open apPath & logFile For Append As fileNo
End If
Print #fileNo, Now & " " & Application.UserName
Close
End Sub

1)日計表のファイルを開き[Alt]+[F11]
2)左側のプロジェクトエクスプローラでThisWorkbookをクリック
3)右側のエディタに上記コードを貼り付け、保存終了

以上で、この日計表を開くたびに、いつ、どのPCが開いたかログを
取っていきます。ログは日計表と同じフォルダのexcelLog.txtに書き
込まれます。

ただ、日計表を開くときにマクロ無効で開かれると機能しませんが。

ご参考になれば。
    • good
    • 9
この回答へのお礼

ありがとうございました。エクセルはこんなことも可能なのですね。
目からウロコでした。文明開花みたいでした。

お礼日時:2007/08/23 13:57

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QWindowsでのファイルのアクセス履歴の取得について

個人情報保護関連でファイルのアクセス履歴を
とるようになったのですが、Windowsの設定で
アクセスおよび更新履歴等をとることはできるのでしょうか?

宜しくお願いいたします。

Aベストアンサー

Windowsのバージョンを明記されていませんが、個人情報保護法の対象内であることから企業でのご利用と考え、Windows 2000/XP/2003をお使いと仮定します。

ファイルのプロパティ画面から『セキュリティ』タブ、『詳細設定』ボタンへ辿り、新たに表示された画面で『監査』タブを操作すると、ここで指定したユーザからのファイルアクセスをイベントログに残すよう、指定できます。

ただし、監査を行うには予め準備が必要です。スタートメニューから『ファイル名を指定して実行』でgpedit.mscを実行し、グループエディタを起動します。そこで『ローカルコンピュータポリシー』(企業内などでの利用でNTドメインを構築している場合は多少名称が異なります)->『コンピュータの構成』->『Windowsの設定』->『セキュリティの設定』…長いですね… ->『ローカルポリシー』->『監査ポリシー』とツリーを辿り、『オブジェクト アクセスの監査』ポリシーの設定を変更します。

このようにすることで、イベントビューアでのアクセス履歴閲覧が可能となります。

Qファイルサーバー上のexcelファイルのアクセス履歴

会社のファイルサーバー上にある、特定のエクセルファイルを誰が開いたか(上書き保存しなかったものも含めて)、分かる方法はありますでしょうか?
既出の質問も検索してみましたが、初心者なので理解力が乏しく、新たに質問させてもらいました。ご親切な方、教えていただけるとうれしいです。

Aベストアンサー

#1です。返答が遅くなり申し訳ありません。
Generalではなく例えばWorkbook_Openなどのイベントです。
モジュール部分にWindowsのログイン名取得モジュールを作り(コードが解らなければWeb上に多数ある)OpenイベントでCallし得たユーザーをどこかのセルまたはブックのプロパティに書き込む事。
そして、Workbook_BeforeCloseイベントで変更履歴をセル又はプロパティに書き込む。
私は会社でISO9001を導入した時の書類管理をその手法でクリアしました。
そう難しい事ではないので挑戦してみて下さい。

Q共有フォルダに誰が何にアクセスしているか知りたいです

WindowsXPで共有にしているフォルダに今現在、
誰が何のファイルにアクセスしているかを
知る方法はありますでしょうか?

Aベストアンサー

こんにちは。

コントロールパネルの中に、管理ツールというものがあります。
その中の、コンピュータの管理を開くと、システムツールがあります。
システムツールの中の、共有フォルダを開くと、目的の情報が得られると思います。
「開いているファイル」に、誰がどのファイルにアクセスしているかの情報があります。
お試しください。

Qエクセルで開いたファイルの履歴の表示

エクセル2000です。
開いたファイルの履歴が、「ファイル」をクリックすると、
現われますが、
これの表示のファイル数、消去される日数を、調整したいのですが、
どこで、調整するのでしょう?
よろしくお願いします。

Aベストアンサー

#1の方法で設定した数だけしか
履歴は残りません。

オーバーした分は古い履歴から
消えていきます。

Qエクセルでファイルを表示した回数をカウントしたいのですが・・・

いつもお世話になっております。

エクセルA41枚のファイルで、
ダブルクリックしてファイルを開けた回数をカウントし、
表示する方法を教えてください。

Accessでないとできない・・・という事をおっしゃる方もいるので、
Accessの方がベストでしたら、その方法もご教授ください。

よろしくお願いいたします。

Aベストアンサー

マクロが必要になります。以下のマクロはエクセルのブックを開いた回数を「ファイル」→「プロパティ」→「ユーザー設定」の「オープン回数」に記録させるマクロです。(OFFICE2003で確認済み。2000以前ではテストしていません)

マクロはALT+F11でVBE画面を開き、「VBAProjectエクスプローラのThisWorkBook右クリック→「コードの表示」で表示される画面にペーストして下さい。再度ALT+F11でVBE画面を閉じて、ブック保存後、一旦ブックを閉じて再度開いてみて下さい。するとファイル」→「プロパティ」→「ユーザー設定」にオープン回数がカウントアップされます。

Private Sub Workbook_Open()
Dim cnt
On Error GoTo end0
With ThisWorkbook
 cnt = .CustomDocumentProperties("オープン回数").Value
 .CustomDocumentProperties("オープン回数").Value = cnt + 1
 .Save
 Exit Sub
end0:
 .CustomDocumentProperties.Add Name:="オープン回数", _
   LinkToContent:=False, _
   Type:=msoPropertyTypeNumber, _
   Value:=1
 .Save
End With
End Sub

ただしマクロを使用しますので、ブックオープン時に「マクロを使用可能にしますか」というメッセージが表示されます。またバージョンによってこの方法は使えないかもしれません。その場合は適当なセルにオープン回数を書き込む方法を説明します。

やってみて分からない場合は、OFFECEのバージョンと具体的に何をやったら、結果がどのようになったかを必ず補足してください。ただ「分からない」では補足回答のしようがありませんから…

マクロが必要になります。以下のマクロはエクセルのブックを開いた回数を「ファイル」→「プロパティ」→「ユーザー設定」の「オープン回数」に記録させるマクロです。(OFFICE2003で確認済み。2000以前ではテストしていません)

マクロはALT+F11でVBE画面を開き、「VBAProjectエクスプローラのThisWorkBook右クリック→「コードの表示」で表示される画面にペーストして下さい。再度ALT+F11でVBE画面を閉じて、ブック保存後、一旦ブックを閉じて再度開いてみて下さい。するとファイル」→「プロパティ」→「ユーザ...続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QExcelのセルにユーザー名を表示する方法

こんにちわ。Excelのセルに使用しているユーザー名を表示する関数はありませんか?お知りの方、宜しくお願いします。

Aベストアンサー

ユーザー名とは、コンピュータにログオンしているユーザ名か、ツール>オプション>全般の「ユーザー名」で指定されているユーザ名かどちらでしょう。(後者はOfficeをインストールするときに指定するので、ログオンユーザ名と同じとは限りません)

どちらにしろ、標準の関数では無理なので、ユーザ定義関数を作ります。
Alt+F11でVBAの画面を開き、「挿入」>「標準モジュール」を選択します。Module1というのができて、右側にそのモジュールの入力画面になります。

ここで、右側に、

Function LoginName() As String
  LoginName = CreateObject("WScript.Network").UserName
End Function

Function ExcelUserName() As String
  ExcelUserName = Application.UserName
End Function

をコピーし、Excelに戻ります。

任意のセルで、
=LoginName()
とするとログオンユーザ名が表示され、
=ExcelUserName()
とするとExcelに登録されているユーザ名が表示されます。

ユーザー名とは、コンピュータにログオンしているユーザ名か、ツール>オプション>全般の「ユーザー名」で指定されているユーザ名かどちらでしょう。(後者はOfficeをインストールするときに指定するので、ログオンユーザ名と同じとは限りません)

どちらにしろ、標準の関数では無理なので、ユーザ定義関数を作ります。
Alt+F11でVBAの画面を開き、「挿入」>「標準モジュール」を選択します。Module1というのができて、右側にそのモジュールの入力画面になります。

ここで、右側に、

Function LoginNa...続きを読む

Q更新していないのにフォルダの更新日付が変わってる

パソコン側のマイドキュメントの中の一つの「フォルダ」のなかの、いくつかのフォルダの更新の日付が、いじってもいないフォルダなのに変わっているのを見つけて、誰かが外からアクセスしたのかと、気味が悪いのですが。
外付けのHDに更新したファイルだけコピーしているのですが、更新どころか、いじってもいないフォルダの更新日付が今日の日付に変わっています。
コピー先の外のHDでは異常ありません。
また勝手に更新されたフォルダの中のファイルの更新日付は変わっていません。
この「フォルダ」の中に、数100個フォルダがあるのですが、過去の分にもたくさん問題のフォルダを見つけました。
同様のご経験がありましたら、理由を教えてください。
WINDOWS-XP ホームです。ノートンINS2006です。

Aベストアンサー

リアルタイムウィルスチェックなどで、フォルダの中のファイルが「ウィルスが居ないか調べようと読み込みモードで開かれ、チェック後に閉じられた」のだと思います。

こういう事が起きると、そのファイルの更新日は変化しませんが「最終アクセス日」が書き換えられます。

「ファイルの最終アクセス日が変更される」とは、すなわち「そのファイルが存在するフォルダが更新される」と言う事です。つまり、フォルダの更新日付が今日になります。

ウィルス対策ソフトを削除してリアルタイムチェックをしないようにするか、リアルタイムチェックの対象から除外すればフォルダの日付が書き換えられる事は無くなりますが、ウィルスに無防備になり非常に危険なので、現状のまま使用し「フォルダの日付が勝手に変わるのは当たり前の事」と思うしかありません。

多分、日付が勝手に変わらない外のHDDは、普段は電源を切ってるか繋いでないかで、ウィルスのリアルタイムチェックの対象外になっているのでしょう。

Q指定したファイルのアクセス数をカウント

タイトルの通り指定したファイルへアクセスした回数をカウントして記録するようなソフトはないでしょうか。また、それ以前にそのようなソフトを開発することは可能なのでしょうか。小さな情報でも構わないので教えてください。よろしくおねがいします。

Aベストアンサー

すると例えば、あなたが作ったExcelのファイルを今までに何回起動したか?ってコトを記録してくれるソフトをお探しでしょうか?
officeソフトに関してだけなら、Outlookにそのような機能がついてます。
が、気に入った*.mpgファイルを何回見たか、っていうようなことを記録できるソフトは見つかりませんでした。Windowsが何回立ち上げられたかっていうソフトでしたらたくさんあったのですが・・・。

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m


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

人気Q&Aランキング