痔になりやすい生活習慣とは?

サーバー上に置いてあるEXCELファイルに、誰がアクセスしたか(または上書き等したか)を見る方法がわかりません。
ファイルには、制限等かかっていません。
ログを見る方法はありますか?

このQ&Aに関連する最新のQ&A

A 回答 (1件)

過去の質問への回答で、今回の回答に最適な回答がありました。


下記の回答が、そのまま使えるのでは。
http://oshiete1.goo.ne.jp/qa3278784.html
    • good
    • 2

このQ&Aに関連する人気のQ&A

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

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

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

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

Qファイルのアクセス回数について

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

Aベストアンサー

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

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

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に書き
込まれます。

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

ご参考になれば。

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

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

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 A...続きを読む

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

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

Aベストアンサー

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

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

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

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

Aベストアンサー

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

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

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

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

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

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

Aベストアンサー

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

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

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

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

Aベストアンサー

こんにちは。

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

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エクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルが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更新していないのにフォルダの更新日付が変わってる

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

Aベストアンサー

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

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

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

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

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

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい


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

人気Q&Aランキング