- 締切済み
excelおよびwordでヘッダーにユーザー名が入るようにするには?
WindowsXP Pro+officeXPを使用しています。 excelおよびwordのヘッダーにWindowsログイン時の ログイン名が入るようにすることは出来ないのでしょうか? 共有する機密性の高いファイルを誰が印刷したか 分かるようにしたいのですが・・・
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
Private Sub Workbook_SheetActivate(ByVal Sh As Object) ActiveSheet.PageSetup.LeftHeader = Application.UserName End Sub ではどうでしょうか。エクセルで少数テスト済み。 ThisWorkbookのSheetActivateイベントに上記をコピペする。印刷する時はSheetをActivateすると思いますが 何か抜け道(もらしている点)があるかも知れず、自信なし。Printerオブジェクトを実行する時とかの、イベントが VBAにあればと思いますが・・。
- Taketoshi
- ベストアンサー率41% (23/56)
VBAが利用できると前提して回答します。 Windows APIも使っています。 ●ThisWorkbookに以下のコードをコピーします。 Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim strUserNameBuffer As String * UNLEN Dim lngUserNameLength As Long Dim lngResult As Long 'ユーザー名の長さを設定 lngUserNameLength = Len(strUserNameBuffer) 'ユーザー名を取得 lngResult = GetUserName(strUserNameBuffer, lngUserNameLength) With ActiveSheet.PageSetup .LeftHeader = "User : " & Left(strUserNameBuffer, InStr(strUserNameBuffer, vbNullChar) - 1) End With End Sub ●標準モジュールを作成し、以下のコードをコピーします。 ' ユーザー名を取得する関数の宣言 Declare Function GetUserName Lib "advapi32.dll" _ Alias "GetUserNameA" _ (ByVal lpBuffer As String, _ nSize As Long) As Long ' ユーザー名の長さを示す定数の宣言 Public Const UNLEN = 256 + 1 印刷時に、ヘッダの左に、 User : xxxxxxxx(←ログインユーザ名) が表示されます。