2017-09-08 5 views
0

私は私のチームのために作成した私のuserformのユーザビリティのMI LOGを取得しようとしています。VBAのuserformイベントアクティビティのログファイル

私は現在、ワークブックが開かれたときと、誰が誰のトラックログを保存することができる段階に達しましたか。しかし、もう少し進んで、ユーザーが何を探しているのか、それが引き出す結果など、ユーザーのフォームでどのような活動が行われているのかを記録したい。

私は場所に現在持っていることは、以下を参照してくださいコード:以下のコードは、MY MODULEに配置されます:

Sub LogInformation(LogMessage As String) 

    Const LogFileName As String = "C:\TEXTFILE.LOG" 
    Dim FileNum As Integer 
    FileNum = FreeFile ' next file number 

    Open LogFileName For Append As #FileNum ' creates the file if it doesn't exist 
    Print #FileNum, LogMessage ' write information at the end of the text file 
    Close #FileNum ' close the file 
End Sub 

Public Sub DisplayLastLogInformation() 

    Const LogFileName As String = "C:\TEXTFILE.LOG" 
    Dim FileNum As Integer, tLine As String 
    FileNum = FreeFile ' next file number 

    Open LogFileName For Input Access Read Shared As #f ' open the file for reading 

    Do While Not EOF(FileNum) 
     Line Input #FileNum, tLine ' read a line from the text file 
    Loop ' until the last line is read 

    Close #FileNum ' close the file 

    MsgBox tLine, vbInformation, "Last log information:" 
End Sub 

Sub DeleteLogFile(FullFileName As String) 
    On Error Resume Next ' ignore possible errors 
    Kill FullFileName ' delete the file if it exists and it is possible 
    On Error GoTo 0 ' break on errors 
End Sub 

以下、このコードが "はThisWorkbook"

Private Sub Workbook_Open() 
    LogInformation ThisWorkbook.Name & " opened by " & _ 
        Application.username & " " & Format(Now, "yyyy-mm-dd hh:mm") 
End Sub 

ON PLACE IS結果、私は以下のTXTファイルから取得してください:

> Number Checker.xlsm opened by #username : 2017-08-30 09:12 
> Number Checker.xlsm opened by #username : 2017-09-02 09:19 
> Number Checker.xlsm opened by #username : 2017-09-07 09:21 

ユーザーフォーム自体は単純な検索ツールであり、検索結果に応じて、私はユーザーの検索結果やtxtbox1の検索結果を追跡するのに役立つ必要があります。これは可能ですか、私は行き止まりで走っていますか? :(

任意の助けもいただければ幸いです。私は正しい方向に私を指してのアドバイス&の助けをすべてに感謝を言いたい

+0

は/終了]などのイベントを入力し、各コントロールの変更、更新を使用して、任意の変更を取得するために隠されたシートにログを作成します。ブックを閉じると、ログシートをテキストファイルに書き出すことができます。 –

+0

_Excel Options_の_General_タブでユーザーが変更できるように、私は 'Application.UserName'というユーザーはいません。ユーザー名 'Environ(" username ")'がシステムのユーザー名を返します。これはまだ間違いかもしれません(私の年齢は、最近のアップグレードまで "Admin"でした)。 –

+0

@KostasK。あなたの提案をありがとう私は上で動作することができるサンプルがありますか? – Mohammed

答えて

0

ありがとう、私は今、それを解決するために管理していると思います、私が行うために必要なすべてがclick eventの下で、このコードを配置することでした。私はそれで私を助け簡単なユーティリティを作成しましたp

0

それは次のとおりです。

LogInformation ThisWorkbook.Name & " - " & " Closed by - " & _ 
Environ("username") & " - " & Application.username & " - " & Format(Now, "yyyy-mm-dd hh:mm") & " - " & " Number Searched For - " & _ 
    Me.check_number.Value & " - " & Me.number_status.Value 

今、次のタスクを[問題が解決]。 VBAテレメトリと呼ばれる。 それはVBAコードの1行と&エラーVBAからREAL-TIMEのロギングとイベントの追跡のためのVBAとMicrosoftのAzureクラウドを接続しています。

世界のどこにいても、VBAプロジェクト(Excelワークブック、プロジェクトへのアクセス)をログに記録して追跡することができます。また、Azure Portal Application Insightsリソース(これはMicrosoft Azureの新製品)で何が起こっているのかが分かります。例えば

、あなたは、この機能でこれを行うことができ、イベントを追跡する場合:また、我々はまた、いくつかのカスタムデータを送信できる1つ以上の機能TrackMetricあり

TrackEvent "CommandButton1ClickEvent" 

。たとえば、ユーザーマシンでループが完了するまでにどれくらいかかりましたかを送信できます。

TrackMetric "Loop1Duration", 100 

それとも、エラー(または例外)を追跡したい場合は、ここでのサンプルコードの行である:

TrackError Err.Description, Err.Number, "CommandButton1_Click" 

あなたは、MicrosoftのAzureクラウドとこのユーティリティの無料版には無料のアカウントが必要です。ここで

は私が(トラック)のイベントをログに記録する方法を示していたビデオ(45秒)です。

Link to 45 sec video Track Events

あなたは、この記事でこれを行う方法の詳細を参照することができ、そこにありますこの記事のYouTube動画(詳細ウェブセミナー): Link to the article

PS

私はVBAプロジェクト(Excel、Access)でのロギングとエラー追跡のために私のプロジェクトでこれを助けてくれたので、これを他の人にも利用できるようにしました。 msgboxがポップアップしても構わないのであれば、無料のバージョンを使うことができます。もし少しでもドルを一度だけ支払ってしまえば、この小さなユーティリティをさらに開発するのに役立ちます。このことができます

希望、 Davor

関連する問題