Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2016)
セルをWクリックして、PCのコンピューター名をセルに記録したい
投稿日時: 20/10/27 15:56:24
投稿者: takatada72

お世話になります。
 
現在、社内にてフリーアドレス制を導入開始になり、誰がどの位置にいるのかを
示すマップを作りたいため、以下の内容を実現したいと考えております。
 
座席図に自分が座っている位置のセルをWクリックすると、そのセルにWクリックした
人の名前が書き込みされるように考えております。
 
こちらを実現するためのプログラムをご指導頂きたいのです。
プログラムが分かっていないため、検索して見つけたコードをコピペで使わせて頂いて
いるレベルになります。
 
セルにボタンをつけて、クリックすると、コンピューター名が表示されるコードは見つ
けられたのですが、その後、どのようにして、セルをWクリックで自分の名前を書き込
みするようにするのかが分かりません。
 
ご指導頂けないでしょうか
Dim WshNetworkObject As IWshRuntimeLibrary.WshNetwork '---(1)
   
    Set WshNetworkObject = New IWshRuntimeLibrary.WshNetwork '---(2)
       
    With WshNetworkObject
        MsgBox "ユーザー名: " & .UserName & vbCrLf _
             & "コンピュータ名: " & .ComputerName
    End With
     
    Set WshNetworkObject = Nothing

回答
投稿日時: 20/10/27 16:32:45
投稿者: WinArrow
投稿者のウェブサイトに移動

引用:
セルにボタンをつけて、クリックすると、コンピューター名が表示されるコードは見つ
 けられたのですが、その後、どのようにして、セルをWクリックで自分の名前を書き込
みするようにするのかが分かりません。

 
上記説明の中の
「その後〜〜〜」以降の説明が理解できません。
 
ユーザー名とコンピュータ名を直接セルに代入する
ことでは、ダメなんですか?

回答
投稿日時: 20/10/27 17:29:38
投稿者: Suzu

その契機という事ですよね。
 
【特定のセルをダブルクリックしたらメッセージボックスを表示する】
https://www.moug.net/tech/exvba/0050012.html
 
 
質問の回答としては上記になるのですが
WshNetworkObject の UserName や ComputerName を使用する為には、
このVBAを、各PC上で各人に実行して貰う必要があります。
 
ネットワーク上の ホスト名 等を一覧として取得できるツールがあります。
そちらを使用したほうが効率的ではないでしょうか。

投稿日時: 20/10/27 17:53:29
投稿者: takatada72

takatada72 さんの引用:
お世話になります。
 
現在、社内にてフリーアドレス制を導入開始になり、誰がどの位置にいるのかを
示すマップを作りたいため、以下の内容を実現したいと考えております。
 
座席図に自分が座っている位置のセルをWクリックすると、そのセルにWクリックした
人の名前が書き込みされるように考えております。
 
こちらを実現するためのプログラムをご指導頂きたいのです。
プログラムが分かっていないため、検索して見つけたコードをコピペで使わせて頂いて
いるレベルになります。
 
セルにボタンをつけて、クリックすると、コンピューター名が表示されるコードは見つ
けられたのですが、その後、どのようにして、セルをWクリックで自分の名前を書き込
みするようにするのかが分かりません。
 
ご指導頂けないでしょうか
Dim WshNetworkObject As IWshRuntimeLibrary.WshNetwork '---(1)
   
    Set WshNetworkObject = New IWshRuntimeLibrary.WshNetwork '---(2)
       
    With WshNetworkObject
        MsgBox "ユーザー名: " & .UserName & vbCrLf _
             & "コンピュータ名: " & .ComputerName
    End With
     
    Set WshNetworkObject = Nothing

 
 
皆様、ご確認をありがとうございました。
自己解決できました。
解決したコードを掲載させて頂きますので、同様な事を実施したい方はご利用下さい。
Dim WshNetworkObject As IWshRuntimeLibrary.WshNetwork '---(1)
Dim namae As String
 
    Set WshNetworkObject = New IWshRuntimeLibrary.WshNetwork '---(2)
     
    namae = WshNetworkObject.ComputerName
    If namae = "HN0008" Then ActiveCell = "担当者A "
     If namae = "475PM2005" Then ActiveCell = "担当者 "
     
    Set WshNetworkObject = Nothing