-PR-

締切り済みの質問

質問:No.850872
困ってます
困ってます
お気に入り投稿に追加する (0人が追加しました)
回答数2
閲覧数520
excelおよびwordでヘッダーにユーザー名が入るようにするには?
WindowsXP Pro+officeXPを使用しています。
excelおよびwordのヘッダーにWindowsログイン時の
ログイン名が入るようにすることは出来ないのでしょうか?

共有する機密性の高いファイルを誰が印刷したか
分かるようにしたいのですが・・・
投稿日時 - 2004-05-07 12:45:23
この質問は役に立ちましたか?
2人が「このQ&Aが役に立った」と投票しています

回答 (2)

回答:No.2
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
ActiveSheet.PageSetup.LeftHeader = Application.UserName
End Sub
ではどうでしょうか。エクセルで少数テスト済み。
ThisWorkbookのSheetActivateイベントに上記をコピペする。印刷する時はSheetをActivateすると思いますが
何か抜け道(もらしている点)があるかも知れず、自信なし。Printerオブジェクトを実行する時とかの、イベントが
VBAにあればと思いますが・・。
投稿日時 - 2004-05-07 13:43:32
この回答を支持する
(現在0人が支持しています)
回答:No.1
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(←ログインユーザ名)
が表示されます。
投稿日時 - 2004-05-07 13:14:34
この回答を支持する
(現在0人が支持しています)
別のキーワードで再検索する
もっと聞いてみる

関連するQ&A

回答募集中

この他の関連するQ&Aをキーワードで探す

別のキーワードで再検索する
-PR-

OKWaveのおすすめ情報

特集

同じカテゴリの人気Q&Aランキング

カテゴリ
Office系ソフト
-PR-

ピックアップ

ノウハウ共有サイト

-PR-
-PR-