忙しい現代人の腰&肩のお悩み対策!

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

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

A 回答 (5件)

ユーザー名とは、コンピュータにログオンしているユーザ名か、ツール>オプション>全般の「ユーザー名」で指定されているユーザ名かどちらでしょう。

(後者は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に登録されているユーザ名が表示されます。
    • good
    • 20
この回答へのお礼

こんにちは、ham_kamoさま。御回答頂いた通り試してみたところ簡単にユーザー名を表示することが出来ました。すばらしい!!有難うございました。今後も宜しくお願いします。ham_kamoさまのお知恵に感謝・感謝です。

お礼日時:2006/12/02 22:55

標準モジュールに(Sheetモジュールではダメ。


既出の回答に当然として書いてないが肝心です。)
Function uname()
uname = "ユーザー" & Application.UserName
End Function
と入れて(unameはどんな名前でも良い)
シートのセルに=Uname()と入れると、セルに「ユーザー INOUE」とかでます。
    • good
    • 12
この回答へのお礼

こんにちは、imogasiさま。御回答頂いた通り試してみたところ簡単にユーザー名を表示することが出来ました。すばらしい!!有難うございました。今後も宜しくお願いします。

お礼日時:2006/12/02 22:52

こんにちは。



既に、VBAのユーザー定義関数で行う方法が出ていますので、名前-定義を使ったマクロ関数で行う方法を紹介しておきます。


ワークシートメニューの 挿入→名前→定義

名前、[WHO](任意)
参照範囲
[=GET.DOCUMENT(36)&LEFT(NOW(),0)]


セルに、

=WHO
と入れれば、ログイン名が出ます。

これは、Excel 4.0マクロ関数を利用した方法です。ファイルにパスワードが設定されていない場合には、現在のユーザー名を返しますが、書き込み禁止した場合は、その設定者の名前が表示されます。

註:なお、この方法は、将来に渡って保証する方法ではないのは言うまでもありませんが、それは、少なくとも、Excel内の仕様変更があるまでです。(現行では、Excel2003まで) Win32 API関数を使用する場合とは、かなり事情が異なります。
    • good
    • 1
この回答へのお礼

こんにちわ、pWendy02さま。早々の御回答に感謝します。有難うございました。今後も宜しくお願いします。

お礼日時:2006/12/02 22:57

こんにちは。



通常の関数では無理では無いでしょうか・・・
Excelのユーザー名とログインユーザー名は基本的に同じだと思うので
VBAでAPI関数を使用して「ログインユーザー名」を取得する方法が
参考URLの井上治さんのHPに記載されています。

参考URL:http://www.asahi-net.or.jp/~ef2o-inue/api/sub08_ …
    • good
    • 0
この回答へのお礼

こんにちわ、boy_boyさま。早々の御回答に感謝します。有難うございました。今後も宜しくお願いします。

お礼日時:2006/12/02 22:58

エクセルのアイコン上で右クリック


プロバティを選択
概要のタブをクリックすると
作成者の名前が変更できます。
    • good
    • 0
この回答へのお礼

こんにちわ、purinchocolateさま。早々の御回答に感謝します。有難うございました。今後も宜しくお願いします。

お礼日時:2006/12/02 22:57

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

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

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

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

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

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

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

Aベストアンサー

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

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

QVBAでアカウント名を取得する方法

VBAで処理したEXCELブックをデスクトップに自動保存しようとしています。VBAで現在作業中のユーザーアカウント名を自動で取得する方法を教えていただきたいのですが。

デスクトップ上にブックを保存するには、パスを記述すればよいのですが、現在PC毎にユーザーアカウントを設定しユーザー名が異なっています。
このため、PC毎にこのユーザー名をデスクトップへのパスに入れ込まなければなりません。毎回キーボードからこのユーザー名を入力する方法もありますが、自動的にユーザー名を取得し、正しいパスを指定する方法を検討しています。
どなたか、VBAでこのユーザー名を取得する方法が有れば教えていただきたいのですが。
よろしくお願いいたします。

Aベストアンサー

Environ関数で、環境変数[USERNAME]を取得する。

MsgBox Environ("USERNAME")

Qエクセル マクロで指定フォルダを開く

エクセルにて
指定フォルダを開く、マクロがあれば教えて頂けないでしょうか。
よろしくお願いいたします。

Aベストアンサー

こんにちは。

こういうものですか?
開くフォルダを変えたいときは targ に与えるパスを変更します。

Sub OpenFolders()
Dim targ As String
targ = "C:\"
Shell "C:\Windows\Explorer.exe " & targ, vbNormalFocus
End Sub

QExcelで更新日時と更新者を表示させる

Excel97で、ファイルの最終更新日時と最終更新者を任意のセルに表示させようとしています。

組込み関数では無理なようなので、VBAで関数を作成し始めました。
日時については、FileDateTime(パス名)で日付のシリアル番号を表示させることができましたが、これをセルの書式設定ではなく、VBA内で日付型にさせたいのです。
更新者は、BuiltinDocumentProperties(7)というのを使用するようですが、記述方法がまったくわかりません。

VBAは初心者です。
Functionステートメントを使用していますがこれ自体は間違いないでしょうか。

ご指導願います。

Aベストアンサー

これでどうでしょう。

以下のようにすると、
=Nichiji("C:\test.xls")
結果:yyyy/mm/dd hh:mm:ss
と言う風に表示されます。

サンプル:
Function Nichiji(strFilePath) As String
Dim strDate As String
strDate = FileDateTime(strFilePath)
Nichiji = CStr(strDate)
End Function

QExcel VBA ログイン中のアカウント名を取得したい

OS:XP
Office:2003 です。

ExcelのVBAで、ログイン中のアカウント名を取得する方法はありますでしょうか?
ちなみに、AD環境です。
が、ドメインアドミンのパスワード等は知りません(教えられていない)。

よろしくお願いします。

Aベストアンサー

MsgBox(Environ("USERNAME"))
ではだめでしょうか?

QExcel VBA でログインしているアカウント(ユーザー)名取得?

WIn2000 と WindowXP において、
Excel VBA で、現在、ログインしているアカウント(ユーザー)名を取得して、表示させたいのですが、どうすればいいのですか?
見よう見まねの独学なので初心者の域をでていませんので、宜しくお願いします。

Aベストアンサー

こんな風でよいのではありませんか?

Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
  (ByVal lpBuffer As String, nSize As Long) As Long
Sub UserName()
  Dim myName As String
  Dim num As Long
  Dim Rtn As Long
  myName = String(250, Chr(0))
  num = Len(myName)
  Rtn = GetUserName(myName, num)
  MsgBox "ユーザー名は" & myName & " です。"
End Sub

Q【Excel VBA】マクロでExcel自体を終了させたい

環境:WindowsXP、Excel2003

マクロでエクセルを終了(ブックを閉じて、アプリケーション自体も終了)させたいのですが、以下のコードではアプリケーションが閉じてくれません。

ThisWorkbook.Close
ExcObj.Quit
Application.Quit

どこか悪いところはありますでしょうか?

よろしくお願いします。

Aベストアンサー

普通に考えれば質問者のコードで上手くいきそうですが
hana-hana3さんの回答にもあるようにThisWorkBook.Closeでコード終了となりますので
Application.QuitをThisWorkBook.Closeの前にもってこないといけません。
Application.Quitはそれがあるプロシージャのコードが全て終わるまで
その実行を保留するちょと特別動作をします。

'-------------------------------------
 Application.Quit
 ThisWorkbook.Close
'-------------------------------------
 
 

Qエクセルでセルにユーザー名を表示させる関数は?

VBAで求めてセルに挿入する方法はわかりますが、CELL関数あたりででできないでしょうか?

Aベストアンサー

こんなのじゃだめですよね?

標準モジュールに以下の関数を作成。
Function User_Name()
User_Name = Application.UserName
End Function

セルに
=User_Name
と入力する。

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む


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

人気Q&Aランキング