お世話になります。
可能かどうかわからず、ここに質問させていただきます。
ネット上PCのそれぞれにインストールされているエクセルのユーザーIDを検索し、どのPC(コンピュータ名)にインストールされているものか確認することは可能でしょうか?
なぜこのようなことをしたいのか説明しますと、
ネット上で共有しているエクセルファイルを開こうとすると、先に誰かが開いている場合、「○○.xlsは編集の為ロックされています。使用者は'AAA'です。」とメッセージが出てきますが、この使用者が誰なのかが分からないんです。「通知」というボタンがありますがこれは、後に開こうとした人に編集できるようになった旨を知らせる通知のようですし・・・
使用環境はWindowsXP Pro(SP3) Excel2003(SP3)
ネットワークの規模はPC約100台
ちょっと漠然としていますが、VBAなり、フリーソフトなど手法はなんでもかまいません。
ご存知の方、ご教示お願いします。
No.5ベストアンサー
- 回答日時:
>(エクセルユーザー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が自分の管理下にない状態で)
書き方が抽象的ですいません。
1.前略・・・エクセルの競合メッセージが出力されます。
そこには「使用者は○○○です」と表示されています。
(○○○はエクセルのユーザー名)
2.「このユーザー名って誰だろう?」となった時(今まさにここで
困ってます。誰がロックしてるかわからないんです。)
3.予めエクセルのユーザー名をWindowsのログイン名やコンピュータ
名にしておく。(最初にend-uさんに教えていただいた方法等で)
ただし、この方法は、管理者がコンピュータ名やログイン名で
個人を特定できることが前提(つまり、管理下に置く)ですね。
・・・と言いたかったんですが、分かりますでしょうか?
説明ベタですいません。
また、補足として、ウチのネットワークはユーザー管理されていません。
ノンパスでWindowsを開くことが出来ます。
(これはこれで、問題なんですけど・・・)
No.6
- 回答日時:
老婆心ながら最後のアドバイス。
これにて失礼します。>管理者権限(というか、ウチはどのクライアントもユーザーIDはアドミニストレータでノンパスワードです。)でアクセスしに行ってるんですが・・・
>また、補足として、ウチのネットワークはユーザー管理されていません。
>ノンパスでWindowsを開くことが出来ます。
>(これはこれで、問題なんですけど・・・)
それはそれで問題、ではなく『それこそ問題』です。
そのような環境で
>ネット上PCのそれぞれにインストールされているエクセルのユーザーIDを検索し、どのPC(コンピュータ名)にインストールされているものか確認することは可能でしょうか?
>できれば、今現在(エクセルユーザーIDが自分の管理下にない状態で)
>調べる方法はないでしょうか?
解消すべき課題の優先順位の設定が間違っているのではないですか?
すでに有効なアドバイスはしてます。ちょっとくらいは工夫や応用をしてください。
>『使用中のメッセージ』に表示される使用者はApplication.UserNameで、これは手作業でも、VBAからでも設定可能です。
>誰が(もしくはどのPCが)使用中か識別できるようなUserNameを設定すれば良いですね。
~~~~~~~~~~~~~~~~~~~
共有ファイルを使う対象者に、BookOpen時にマクロが走るようにした設定用ファイルをメールでもなんでも使って配信し、
PC名をApplication.UserNameに設定してもらってください。
それさえもできない状況ならネットワークユーザーの管理はあきらめたほうが良いです。
いや、おっしゃるとおりです。
「問題あり」のネットワーク環境ですので、やることは山積みです。
まずは、ご提供いただいた事を実践していきたいと思います。
アドバイスありがとうございました。
No.4
- 回答日時:
ネットワークユーザーのユーザーIDを取得するのが目的なのか、
Excelファイル使用が競合した時に、誰が使用中か判るようにする事が目的なのか、ですね。
後者の場合、Excelの標準機能『使用中のメッセージ』を利用できるなら、それにこした事はないと思います。
『使用中のメッセージ』に表示される使用者はApplication.UserNameで、これは手作業でも、VBAからでも設定可能です。
誰が(もしくはどのPCが)使用中か識別できるようなUserNameを設定すれば良いですね。
※但し、企業内ルールでApplication.UserNameの変更が禁止されていたりすると話は別。
手作業で設定するのが面倒なら、
'ThisWorkbookモジュール
Option Explicit
Private Sub Workbook_Open()
Dim x
On Error GoTo errHndr
x = CreateObject("Wscript.Network").UserName
If MsgBox(x & " をExcelのユーザー名として登録します。", vbOKCancel) = vbOK Then
Application.UserName = CStr(x)
End If
errHndr:
End Sub
こんな感じで、BookOpen時にマクロが走るようにしたxlsファイルを設定用として配付し、
一回だけ実行してもらうという事も考えられます。
この回答への補足
ご回答ありがとうございます。
なるほど、エクセルのユーザーIDをログインユーザーIDに変えちゃう
わけですね。確かにこの方法をやっておけば、特定できますね。
ただ、これも予め全てのPCのエクセルユーザーIDを管理下に収めて
おくという前提であれば可能ということですね。
できれば、今現在(エクセルユーザーIDが自分の管理下にない状態で)
調べる方法はないでしょうか?
これは、これで、今後の為に活用させていただきます。
有益な情報ありがとうございました。
No.3
- 回答日時:
>・・・ネットワークの規模はPC約100台
で 1つの Exell ファイルを 使ってる状態が 異常と思います。
もっと NETの状態に適したデーターを構築しないと 先々とんでもない
トラブルに会う可能性があります。
Access でも可能ですが・・・せいぜいで 10台規模 使うタイミングによっては 3台でも
障害が出てきます。
個人で管理するにはOffice系では 10台程でしょう。
SQL サーバー や オラクル 等の導入も含めて
Accsee の ホーム、レポート 等を利用しながら 構築する事が
良いと思います。
後は、該当の EXELL ファイルにフルアクセス出来る PCを制限するするとか・・・・
閲覧だけなら 読み取り専用モードで開いてもらうとか・・・
それなりに 管理をしないと ・・・ と思います。
上司(経営者)の方向は如何なんでしょう?
問題が大きくなってからでは 手遅れですので 良く検討して話し合って下さい。
この回答への補足
ごめんなさい、書き方悪かったですかね。
一つのエクセルファイルを100台で使っているわけではないです。
あくまでもネットワークの規模がそれぐらいということで、
そのネットワーク環境の中で、エクセルファイルの競合があった時、
エクセルのユーザーIDのみで、端末を特定する方法を知りたかっただ
けです。ネットワークの環境が10台ぐらいなら、しらみつぶしに
一台ずつ確認していく方法もありですが、100台(+VPNで遠方にも)はちょっと・・・
で、質問させていただいた次第です。
No.2
- 回答日時:
この回答への補足
ご回答ありがとうございます。
おっこれは!と思って、手順どおり進めていったんですが、
「コンピュータの管理」の所で、共有フォルダの「開いているファイル」
をクリックすると、
「Windowsクライアントのセッション一覧を読み取り中にエラーが発生しました:エラー5:アクセスが拒否されました。」
と出てしまいます。
管理者権限(というか、ウチはどのクライアントもユーザーIDはアドミニストレータでノンパスワードです。)でアクセスしに行ってるんですが・・・
もう少し調べてみます。
情報ありがとうございました。
No.1
- 回答日時:
CVSだったかVSSだったか忘れましたが確かPC名まで見れた様な気がします。
(うろ覚えですこの回答への補足
早速のご回答ありがとうございます。
ネットで調べてみました。
CVS:Concurrent Version System?
VSS:Visual SourceSafe?
いずれもバージョン管理ソフトのようですね。
(ネットで調べた結果が見当違いだったらすいません。)
上記ソフトの場合は、既にこれらで管理されていることが前提のよう
ですので、せっかく教えていただいたのですが利用できそうにありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Word(ワード) PCで作ったwordをスマホで編集しようとすると「このファイルは読み取り専用です。」と表示される。 3 2023/05/30 14:51
- その他(Microsoft Office) 新pcでoffice使いたい 3 2022/11/25 19:45
- Excel(エクセル) エクセルのファイルを複数のPCで同期する方法は? 7 2022/11/23 17:35
- アプリ androidエミュレーターでアプリが見つかりません 2 2022/11/25 15:00
- その他(クラウドサービス・オンラインストレージ) iPadとクラウドの同期はできないですか? 1 2022/05/21 09:34
- ルーター・ネットワーク機器 通信量や通信量による影響を計算し想定できますか 3 2023/01/13 09:07
- ドライブ・ストレージ pcの外付けハードディスクの共有方法 4 2022/11/28 05:17
- Visual Basic(VBA) エクセルVBA エクセルを開いた後に編集可能な状態にするには? 2 2023/06/14 11:58
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Wi-Fi・無線LAN PCWi-Fiの設定方法がわからなくて困っています。 4 2022/12/28 18:30
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
サーバー上にあるファイルの使用者名の表示
その他(Microsoft Office)
-
ExcelVBAで今開いているユーザ情報を取得できますか?
Visual Basic(VBA)
-
エクセルで誰が今開いているか調べる方法。
Excel(エクセル)
-
-
4
EXCELファイルに誰がアクセスしたかを見たい
Access(アクセス)
-
5
ファイルのアクセス回数について
Access(アクセス)
-
6
Excel VBA Windowsにログインしているユーザ名
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
YouTubeが毎回ログインしないと...
-
Excelのセルにユーザー名...
-
ビーリアルのユーザー名を変え...
-
Instagramからこんなメールがき...
-
メールをパスワードつきで送る方法
-
LINE TCBというところからLINE...
-
X(Twitter)が乗っ取られたかも...
-
メールアドレスで上付きのハイフン
-
インスタのアイコンについてるN...
-
steam版 apexのログアウト方法...
-
CDにパスワードをかける
-
メールのマナー編
-
URLとメールアドレス
-
「@」(アットマーク)の無いメ...
-
インスタの捨て垢で友達のスト...
-
すしともでログインできません
-
携帯電話を解約してもSMSの受信...
-
メールを返信したら、英語のメ...
-
インスタで新しいアカウントを...
-
CSVファイルを添付するときにパ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ビーリアルのユーザー名を変え...
-
Excelのセルにユーザー名...
-
steam版 apexのログアウト方法...
-
メールアドレス 上バーの入力...
-
Netflixのパスワード変更につい...
-
メールアドレスで上付きのハイフン
-
メールのマナー編
-
メールをパスワードつきで送る方法
-
メールアドレスから個人を特定...
-
メールを返信したら、英語のメ...
-
楽天カードからのワンタイムパ...
-
携帯電話を解約してもSMSの受信...
-
CSVファイルを添付するときにパ...
-
インスタの捨て垢で友達のスト...
-
解約済みの iPadについて 解約...
-
URLとメールアドレス
-
YahooIDをパスワード形式にした...
-
大学定期試験過去問サイト「過...
-
「@」(アットマーク)の無いメ...
-
メールエラー
おすすめ情報