社内にファイルサーバーが設置してあります。

特定のファイルが現在読み取り中になっていると仮定します。
この場合、誰がそのファイルを開いているか特定
することは可能でしょうか?

A 回答 (2件)

#1です。



>>それかファイルサーバで共有者名がWindows serverならログイン名で表示されますのでそれでも確認はできます。

すみません。
これはサーバ管理者でしか判らないことです。


>>ファイル自体は読み取り専用表示になっているのに、
開くときには別段読み取り専用の確認等のウィンドウは
出てきません。

これは問題有るのではないですか?

ブックの共有を実行しているときでも変更した場合は
変更者の名前が出てきます。(前に説明した登録(所有)者の名前です)
当然、ブックの共有を行わない場合はリンク先の実例の用に使用者名が出ます。

実例 使用中のファイルのオープン部分を参照
http://www.atmarkit.co.jp/fwin2k/win2ktips/410ex …




少し考えたのですが、ブックの共有を行っていると
一つのファイルを複数人で扱えますがその際には
メッセージは当然出ません。
ただし、ファイルサーバを使用していて、そのファイルの書き込み権限が無ければ、メッセージが出ずに読み取り権限になります。この状態ではないでしょうか?

サーバ管理者がいればその方と使い方に関して話し合ってください。ポリシーが一定になってないと構築し使用して貰う意味が半減します。
    • good
    • 0

使用しているファイルを開こうとするとエクセルをインストールするときに登録した登録者名が出ます。



会社などで同じ名前にしていると駄目ですけどね。。

それかファイルサーバで共有者名がWindows serverならログイン名で表示されますのでそれでも確認はできます。

一番手っ取り早いのが登録者名を個人名義にすることです。

この回答への補足

ご回答ありがとうございます。

> それかファイルサーバで共有者名がWindows serverならログイン名で表示されますのでそれでも確認はできます。

ただ、これがちょっと分からないのですが。
ファイル自体は読み取り専用表示になっているのに、
開くときには別段読み取り専用の確認等のウィンドウは
出てきません。

補足日時:2005/02/28 20:01
    • good
    • 0

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

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

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

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

Qサーバー上にあるファイルの使用者名の表示

会社のサーバー上に業務で複数のユーザーが使用するExcelファイルがあります。

これを、すでに誰かが使用している状態で開くと読み取り専用で開くかどうかの判断を促すダイアログが出てくるのが一般的だと思います。このとき、「使用者は"****"です」という表示もあると思いますがここにログインしている端末の名前を付加することはできるでしょうか?

「ツール」→「オプション」→「全般のタブ」→「ユーザー名の欄に任意の名前を入力」でもできるのは知っていますが、ファイルと使用端末がなかなかの数に及ぶため他の方法を探しています。

社内のLAN上の端末郡で、それぞれの端末からのログオンIDで個人はワークグループに認識されいるようですから、その辺の内容を認識してくれればと考えてはいるのですが・・・。

Aベストアンサー

>「ツール」→「オプション」→「全般のタブ」→「ユーザー名の欄に任意の名前を入力」でもできるのは知っていますが、ファイルと使用端末がなかなかの数に及ぶため他の方法を探しています。

企業内ルールでApplication.UserNameの変更が禁止されていないなら、
Excelの標準機能を利用するにこした事はないと思います。
1度設定してしまえばシステム管理者やユーザーが何もしなくても誰が開いているのか判るわけですからね。

『ファイルと使用端末がなかなかの数に及ぶため』
というのが要因なら、設定用のxlsファイルを配布する方法でクリアできると思います。

右『関連するQ&A』にもリンクが出てますが
http://oshiete1.goo.ne.jp/qa5032527.html
こちらを参考にされてはいかがでしょう。

Q誰が共有のエクセルファイルを開いているか?

会社の共有フォルダに入ってるエクセルファイルを開いた時に読み取り専用になる場合、
誰がそのファイルを開いているかをわかる方法ってありますか?

Vbaも使えるので、開いている人をvbaで取得する方法でもいいので教えてください。

Aベストアンサー

ご質問の処理を開始するにはそのサーバーについての管理者権限が必要で、会社が構築している大規模なネットワークでは、一般ユーザーには権限がないことが通常だと思います。

社内の各職場で独自に導入しているハードディスク、家庭のコンピュータなどで共有フォルダを使用している場合は、参考 URL の要領で簡単に、アクセス状況の把握や強制終了の操作ができます。

参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/083opened_net_file/083opened_net_file.html

Qネット上PCのエクセルのユーザーIDを検索したい

お世話になります。
可能かどうかわからず、ここに質問させていただきます。

ネット上PCのそれぞれにインストールされているエクセルのユーザーIDを検索し、どのPC(コンピュータ名)にインストールされているものか確認することは可能でしょうか?

なぜこのようなことをしたいのか説明しますと、
ネット上で共有しているエクセルファイルを開こうとすると、先に誰かが開いている場合、「○○.xlsは編集の為ロックされています。使用者は'AAA'です。」とメッセージが出てきますが、この使用者が誰なのかが分からないんです。「通知」というボタンがありますがこれは、後に開こうとした人に編集できるようになった旨を知らせる通知のようですし・・・

使用環境はWindowsXP Pro(SP3) Excel2003(SP3)
ネットワークの規模はPC約100台

ちょっと漠然としていますが、VBAなり、フリーソフトなど手法はなんでもかまいません。
ご存知の方、ご教示お願いします。

Aベストアンサー

>(エクセルユーザーIDが自分の管理下にない状態で)
...という意味を、私が今ひとつ理解してないかもしれませんが
深く考えないなら
『ネット上で共有しているエクセルファイル』のWorkbook_Openイベントで
ユーザー識別情報を外部ファイルに書き出して、調べたい時にそれを参照すれば良いです。

'ThisWorkbookモジュール
Option Explicit
Private Sub Workbook_Open()
  Dim CSset As Object
  Dim cs  As Object
  Dim fName As String
  Dim n   As Long
  Dim tmp(0 To 3) As String

  On Error Resume Next
  If ThisWorkbook.ReadOnly Then Exit Sub
  tmp(0) = Now()
  tmp(1) = "failure"
  Set CSset = CreateObject("WbemScripting.SWbemLocator") _
        .ConnectServer _
        .ExecQuery("Select * From Win32_ComputerSystem")
  For Each cs In CSset
    tmp(1) = "DomainName:" & cs.Domain
    tmp(2) = "CompName:" & cs.Name
    tmp(3) = "UserName:" & cs.UserName
  Next
  
  n = FreeFile
  fName = ThisWorkbook.FullName
  fName = Left$(fName, InStrRev(fName, ".") - 1) & "user.txt"
  Open fName For Output As #n
  Print #n, Join(tmp, vbTab)
  Close #n

  Set CSset = Nothing
End Sub

さらに簡易的で良いなら
:
Dim n As Long
Dim tmp(0 To 2) As String

On Error Resume Next
If ThisWorkbook.ReadOnly Then Exit Sub
tmp(0) = Now()
tmp(1) = "failure"
tmp(1) = "CompName:" & Environ("computername")
tmp(2) = "UserName:" & Environ("username")
n = FreeFile
Open ThisWorkbook.FullName & "_user.txt" For Output As #n
Print #n, Join(tmp, vbTab)
Close #n
:
な感じでも。

>(エクセルユーザーIDが自分の管理下にない状態で)
...という意味を、私が今ひとつ理解してないかもしれませんが
深く考えないなら
『ネット上で共有しているエクセルファイル』のWorkbook_Openイベントで
ユーザー識別情報を外部ファイルに書き出して、調べたい時にそれを参照すれば良いです。

'ThisWorkbookモジュール
Option Explicit
Private Sub Workbook_Open()
  Dim CSset As Object
  Dim cs  As Object
  Dim fName As String
  Dim n   As Long
  Dim tmp(0 To 3) As St...続きを読む

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

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

Q共有ファイルを使用中のユーザー名表記について

御世話になっております。
少し困っておりますので、ここにて質問させて頂きます。
現在業務でBuffalo社製NASを用いて複数パソコンでファイルの共有を行っております。
しかし何台かのパソコンにおきまして、そのパソコンが共有ファイルを使用している場合、
他のパソコンでそのファイルにアクセスしようとすると

本来なら読み取り専用で出てきて「使用中のパソコンは“○○”です。」
という形で出るはずなのですが、問題のパソコンに関しては
「使用中のパソコンは“”です。」
と名前が表示されない状態となってしまっております。

そこで通知を押せば使用後に通知が来て使用できますが、
急ぎの業務で使用する場合、誰が使っているのか分からない為、
トラブルになる場合があり何か解決策があればご教授頂ければ幸いです。
何卒よろしくお願いいたします。

Aベストアンサー

>そのパソコンが共有ファイルを使用している場合、

共有しているファイルはExcelなど、MicrosoftOfficeのファイルでしょうか?
ユーザー名の設定値はWindowsだけではなくOffice側でも持っていて、
「編集のためロックされている」というところに出てくるモノはOffice側の設定値になります。

Excelでの確認箇所を書いておきます。
(Excelでの設定ではありますが、ここで設定した「ユーザー名」は、Wordなど他のOffice製品でも使われます。個々のソフトごとに、違うユーザー名をつけることは基本的にできません)

 ・バージョン2003までの場合
 メニューバーの[ツール]→[オプション]→[全般]タブの「ユーザー名」のところ

 ・バージョン2007の場合
左上の丸いOfficeボタン→[Excelのオプション]→「ユーザー名」のところ

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

QExcelファイルがロックされて解除できません。

Excelファイルがロックされて解除できません。

Excel起動中におかしくなった為か、
ファイルを開いてもないのに、開こうとすると
「・・xlsは編集のためロックされています」と出てしまいます。
尚、ファイルはサーバー上に置いてます。

1.ロックを掛けた、ローカルマシンを再起動しました。
2.c:\documents and Settings\ユーザ\Local Settings\Tempのファイルを
別の場所に移動させました。(但し全てのファイルを移動できなかった)
3.コマンドプロンプトのdelコマンドを試しました。

1~3を試したんですが、ロックが解除できません。
Excelは Excel2003 SP3
OfficeはWindowsXP ServicePack3
です。

ロック解除又はファイルを削除したいです。
何か解決する方法はあるでしょうか?

Aベストアンサー

問題はファイルサーバに潜んでいるのかもしれませんね。
ファイルサーバのOSが不明なのと権限も不明ですが、Windows であれば
このような解決策もあります。
共有ファイルを現在使用しているユーザーを特定する方法
http://www.atmarkit.co.jp/fwin2k/win2ktips/083opened_net_file/083opened_net_file.html
↑の方法でで強制的に接続を切れば削除可能となるかもしれません。
あるいはサーバーの再起動。
またファイルサーバで軽微なディスクエラーが発生している可能性も有ります。
いずれにしても権限に左右されますので、
サーバの『管理者』に相談されるのが一番の近道と思います。

QEXCEL共有ファイルの使用中の相手への通知

共有フォルダーにある、Excelファイルを、他の方が使用していて、自分が開こうとすると、【使用中のファイル】として、【読み取り専用】か【通知】か【キャンセル】かのボタンが出てきます。

それぞれの場合で開いた場合、相手の方にはどのような表示が出るのですか?または、相手の方には何も通知は出ないのですか?教えてください。

Aベストアンサー

環境があるなら実際にやってみたら?
とりあえず、答えとして、
メッセージが相手に表示する事はどれもありません。
読み取り専用を選択した場合は、編集が出来ない状態、
通知を選択した場合は、編集出来ますが、別ファイルでしか保存出来ません。
以下が通知を選択した場合の相手が閉じた時に自分の方に出るメッセージです。

「**.xlsは編集できるようになりました。」
「[編集]を選択すると、開いたファイルを編集できます。」

編集をクリックすると、続いて、

「別の人も変更を加えました。どのように処理しますか?」

「変更内容を破棄して最新のファイルを編集する場合は[破棄]をクリックしてください。」
「変更内容を別のファイルに保存して最新のファイルを開く場合は、[保存]をクリックしてください。」

と、表示されます。

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

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

Aベストアンサー

こんにちは。

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


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

人気Q&Aランキング

おすすめ情報