[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ヘッダーに印刷者を表示させる方法はありますか?』(ygg)
<環境>
EXCELのバージョンは2003で、OSはWindowsXPです。
<教えて頂きたいこと1>
ヘッダーに印刷日時を入れることは分かったのですが、ここに印刷者も
いれたいと思っています。
例えば、「ツール」メニューの「オプション」の「全般」タグの「ユーザー
名」を表示する関数はありますでしょうか?
<教えて頂きたいこと2>
上の1の内容に加え、ネットワークにてActiveDirectoryドメインにて
ユーザー管理をしておりますが、このログイン時のユーザーアカウント
もしくはアカウントの表示名を、ヘッダーに入れることはできますで
しょうか?
よろしくお願いいたします。
標準モジュールに
Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _ (ByVal lpBuffer As String, nSize As Long) As Long
Thisworkbookモジュールに
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim strNmBuf As String * 256 Dim NetUserNm As String Dim ExcelUserNm As String GetUserName strNmBuf, 256 NetUserNm = Left$(strNmBuf, InStr(strNmBuf, vbNullChar) - 1) ExcelUserNm = Application.UserName For Each ws In ActiveWindow.SelectedSheets ws.PageSetup.RightHeader = "Login :" & NetUserNm & vbLf & _ "印刷者:" & ExcelUserNm Next ws End Sub
こんな感じで合ってますか? (momo)
VBについては初心者同様でして、標準モジュールとThisworkbookモジュールに貼り付けることは
できましたが、その後、ヘッダーにもってくるまではどのようにすれば良いのでしょうか?
教えていただけると有難いです。
(ygg)
>関数では難しいということですね。
関数では無理だと思います。 Excelのユーザー名はもしかしたらExcel4マクロと名前定義などで出来るのかもしれませんが 今後の事を考えるとVBAで処理したほうが無難かと思います。
>ヘッダーにもってくるまではどのようにすれば良いのでしょうか?
Private Sub Workbook_BeforePrint(Cancel As Boolean) という印刷前に起動するイベントを使っていますので 印刷や印刷プレビューをすると自動的にヘッダーに設定します。
(momo)
印刷を実行しようとすると、次のコンパイルエラーが出てしまいます。
GetUserNameが反転され、SubまたはFunctionが定義されていません。
何度もすみませんが、構文に誤りがあるのでしょうか?
宜しくお願いします。
(ygg)
>標準モジュールに > Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _ (ByVal lpBuffer As String, nSize As Long) As Long
↑は、ちゃんと標準モジュールに入っていますか? (momo)
標準モジュールのModule1に入っております。
(ygg)
コードは何も変更せずに、そのまま貼り付けてますよね?
あとは、C\WINDOWS\system32のフォルダの中にadvapi32.dllはありますか?
(momo)すみませんが今日は時間的にこれが最後のレスになります。
advapi32.dllはあります。
もう1度、最初からやってみます。
また、明日確認してから書き込みます。
何度も迅速なレスありがとうございます。
(ygg)
なお、分かる範囲で結構です。もう1点、Loginには、ネットワークにログイン
するアカウントが正常に表示されました。(ありがとうございます。)
このアカウントですが、ActiveDirectory上で登録されている表示名を
表示することはできないでしょうか?
何度もすみませんが、もう1度お願いします。
(ygg)
ActiveDirectoryはあまり詳しくないのですが、例えば以下のコードで必要な情報は得られますか? 環境が無いのでテストも出来ず・・・^^;
Sub GetCurrentUser() Set objSysInfo = CreateObject("ADSystemInfo") strUser = objSysInfo.UserName Set objUser = GetObject("LDAP://" & strUser) MsgBox objUser.samaccountname & vbLf & _ objUser.displayName End Sub
(momo)
本当にいろいろとありがとうございました。
助かりました。
(ygg)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.