セルへのユーザー名の挿入(Microsoft Excel)
Sunlimは、Officeがインストールされると、ユーザーが自分の名前を指定すると述べました。この名前は、Wordなどの一部のOfficeプログラムでアクセスできます。 Sunlimは、Excelでユーザーの名前にアクセスし、その名前をセルに配置する方法を考えています。
これを行う方法は、Applicationオブジェクトのhttp://username-password.com/[UserName]プロパティにアクセスする短い1行のマクロを実装することです。この手法については、ExcelTipsの別の号で詳しく説明されています:
http://excel.tips.net/T003289
このアプローチは、Excelの現在のインストールに関連付けられているユーザー名を判別するのに最適です。ただし、それは現在のブックを使用している人と同じではない場合があります。たとえば、ブックが共有されている場合、複数の人が同時にブックを使用している可能性があります。その場合、次に示すように、これらの名前を判別する方法が必要です。
Function UserNames() As String Dim Users As Variant Dim sMsg As String Dim iIndex As Integer Users = ActiveWorkbook.UserStatus For iIndex = 1 To UBound(Users, 1) sMsg = Users(iIndex, 1) & vbLf Next iIndex 'remove final line feed sMsg = Left(sMsg, Len(sMsg) - 1) UserNames = sMsg End Function
この関数を使用するには、名前を表示するセルに次の数式を入力するだけです。
=UserNames
代わりに、現在コンピュータを使用しているユーザーを知りたい場合は、Officeの先を見て、代わりにWindows自体から名前を取得することをお勧めします。このようにして、Windowsにログインしているユーザーを特定し、それをユーザー名として使用できます。これにはAPI関数呼び出しの宣言が必要ですが、それ以外の点では比較的簡単です。
Private Declare Function GetUserName Lib "advapi32.dll" _ Alias "GetUserNameA" (ByVal lpBuffer As String, nSize _ As Long) As Long Function UserName2() As String Dim strBuff As String * 100 Dim lngBuffLen As Long lngBuffLen = 100 GetUserName strBuff, lngBuffLen UserName2 = Left(strBuff, lngBuffLen - 1) End Function
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(7251)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。
linkセルにユーザー名を挿入。