Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


16 / 13256 ツリー ←次へ | 前へ→

【80532】処理が遅くなってしまう amatsuno 19/2/28(木) 14:04 質問[未読]
【80533】Re:処理が遅くなってしまう amatsuno 19/2/28(木) 14:05 発言[未読]
【80534】Re:処理が遅くなってしまう amatsuno 19/2/28(木) 14:12 発言[未読]
【80535】Re:処理が遅くなってしまう amatsuno 19/2/28(木) 14:18 発言[未読]
【80538】Re:処理が遅くなってしまう マナ 19/2/28(木) 18:54 発言[未読]
【80539】Re:処理が遅くなってしまう γ 19/2/28(木) 20:19 発言[未読]
【80541】Re:処理が遅くなってしまう amatsuno 19/3/1(金) 19:21 発言[未読]
【80542】Re:処理が遅くなってしまう amatsuno 19/3/1(金) 19:29 発言[未読]

【80532】処理が遅くなってしまう
質問  amatsuno  - 19/2/28(木) 14:04 -

引用なし
パスワード
   csvファイルを読み込んで、各ユーザのログイン時刻とログアウト時刻
また、実利用時間を取得するスクリプトを作成しています

スクリプト自動実行をおこなっている関係上、
1つのマクロで全処理を実施する必要が発生したため、
各処理を結合したのですが、処理が冗長化しているのか、
別々にしたときよりも実行時間がかかってしまいます。

そこで、スリム化を計画しているのですが、
具体的に手を入れる箇所がうまくわからない状態です。

申し訳ございませんが、
どこを修正すればよいのか、ご教授いただけますでしょうか。
(処理が遅くなっている原因などもお分かりになりましたら、お願いいたします)

Option Explicit

Sub CSV_READ()
 'マスタファイルを読み込むマクロ

  Dim varFileName As Variant
  Dim varFileName2 As Variant
  Dim intFree As Integer
  Dim intFree2 As Integer
  Dim strRec As String
  Dim strRec2 As String
  Dim strSplit() As String
  Dim strSplit2() As String
  Dim i As Long, j As Long
  Dim i2 As Long, j2 As Long
  Dim i3 As Long, j3 As Long
  Dim m As Long, n As Long
  Dim dic As Object
  Dim rng As Range
  Dim vA As Variant, vB As Variant, v As Variant
  Dim ii As Long, jj As Long, kk As Long, nn As Long
   
  Dim vA2 As Variant, vB2 As Variant, v2 As Variant
  Dim ii2 As Long, jj2 As Long, kk2 As Long, nn2 As Long
  
   
  Dim dic2 As Object
  Dim vA3 As Variant, vK2 As Variant, vK3 As Variant


  Dim csvFile As String
  Dim ii3 As Long, jj3 As Long
  
  Dim ws_master_csv As Worksheet
  Dim ws_master_csv_new As Worksheet
  Dim ws_btn As Worksheet
  Dim ws_group As Worksheet
  Dim ws_group_new As Worksheet
  Dim ws_group_user As Worksheet
  Dim ws_cover As Worksheet
  Dim ws_usetime As Worksheet
  Dim ws_usetime_new As Worksheet
  Dim ws_addtime As Worksheet
  Dim ws_res As Worksheet
  Dim ws_last As Worksheet
  Dim ws_group_name As Worksheet
  Dim ws_group_new_3 As Worksheet
  Dim ws_group_new_2 As Worksheet
  
  
  Dim ws_add As Worksheet
  Set ws_add = Worksheets.Add
  ws_add.Name = "最終csv"


  Set ws_master_csv = Worksheets("マスタCSV")
  Set ws_master_csv_new = Worksheets("マスタCSV更新")
  Set ws_btn = Worksheets("ボタン")
  Set ws_group = Worksheets("グループ情報")
  Set ws_group_new = Worksheets("グループ情報更新")
  Set ws_group_user = Worksheets("利用ユーザ")
  Set ws_cover = Worksheets("名称補完")
  Set ws_usetime = Worksheets("開始終了")
  Set ws_usetime_new = Worksheets("開始終了更新")
  Set ws_addtime = Worksheets("時間合計")
  Set ws_res = Worksheets("出力結果")
  Set ws_last = Worksheets("最終csv")
  Set ws_group_name = Worksheets("グループ名")
  Set ws_group_new_3 = Worksheets("グループ補完")
  Set ws_group_new_2 = Worksheets("グループ補完2")
  
  Set dic = CreateObject("Scripting.Dictionary")
  Set dic2 = CreateObject("Scripting.Dictionary")


  ws_master_csv.Activate
 
 
  '貼り付け先を空白にする
  ws_master_csv.Cells.Clear
  ws_master_csv_new.Cells.Clear
  ws_group.Cells.Clear
  ws_group_new.Cells.Clear
  ws_group_user.Cells.Clear
  ws_cover.Cells.Clear
  ws_usetime.Cells.Clear
  ws_usetime_new.Cells.Clear
  ws_addtime.Cells.Clear
  ws_res.Cells.Clear
  ws_last.Cells.Clear
  ws_group_name.Cells.Clear
  ws_group_new_3.Cells.Clear
  ws_group_new_2.Cells.Clear
 
  '読み込むファイルを指定する
  varFileName = "P:\ログ.csv"
  varFileName2 = "P:\ライセンス.csv"


  intFree = FreeFile '空番号を取得
  Open varFileName For Input As #intFree 'CSVファイルをオープン

  'ログ情報のcsvファイルを1行ずつ読み込んで貼り付ける
  i = 0
  Do Until EOF(intFree)
    Line Input #intFree, strRec '1行読み込み
    i = i + 1
    strSplit = Split(strRec, ",") 'カンマ区切りで配列へ
    For j = 0 To UBound(strSplit)
      Cells(i, j + 1) = strSplit(j)
    Next
  Loop
 
  'グループ情報のcsvファイルを1行ずつ読み込んで貼り付ける
  ws_group.Activate

  intFree2 = FreeFile '空番号を取得
  Open varFileName2 For Input As #intFree2 'CSVファイルをオープン

  'csvファイルを1行ずつ読み込んで貼り付ける
  i2 = 0
  Do Until EOF(intFree2)
    Line Input #intFree2, strRec2 '1行読み込み
    i2 = i2 + 1
    strSplit2 = Split(strRec2, ",") 'カンマ区切りで配列へ
    For j2 = 0 To UBound(strSplit2)
      Cells(i2, j2 + 1) = strSplit2(j2)
    Next
  Loop

【80533】Re:処理が遅くなってしまう
発言  amatsuno  - 19/2/28(木) 14:05 -

引用なし
パスワード
   'ログ情報のうち、必要な列のみを抽出

  ws_master_csv.Columns(2).Copy
  ws_master_csv_new.Columns(5).PasteSpecial Paste:=xlPasteValues
 
  ws_master_csv.Columns(8).Copy ws_master_csv_new.Columns(2)
 
  ws_master_csv.Columns(18).Copy ws_master_csv_new.Columns(3)
  
  ws_master_csv.Columns(11).Copy
  ws_master_csv_new.Columns(4).PasteSpecial Paste:=xlPasteValues
  ws_master_csv_new.Columns(4).NumberFormatLocal = "h:mm:ss"
  
  ws_master_csv.Columns(7).Copy ws_master_csv_new.Columns(1)
  
        
 'グループ情報のうち、必要な列のみを抽出
 
  ws_group.Columns(1).Copy
  ws_group_new.Columns(1).PasteSpecial Paste:=xlPasteValues
 
  ws_group.Columns(5).Copy
  ws_group_new.Columns(2).PasteSpecial Paste:=xlPasteValues
    
  ws_group.Columns(2).Copy
  ws_group_new.Columns(3).PasteSpecial Paste:=xlPasteValues
  
      
 '表示名が空白のレコードに、端末機に紐付いている名称を入れる
  ws_master_csv_new.Columns(5).Copy
  ws_group_user.Columns(1).PasteSpecial Paste:=xlPasteValues
 
  ws_master_csv_new.Columns(1).Copy
  ws_group_user.Columns(2).PasteSpecial Paste:=xlPasteValues
    
  ws_master_csv.Columns(6).Copy
  ws_group_user.Columns(3).PasteSpecial Paste:=xlPasteValues
  
          
  Const cFormula As String = "=VLOOKUP(@,グループ情報更新!A:C,3,FALSE)"
  With Worksheets("名称補完")
    Worksheets("利用ユーザ").Range("A:C").Copy .Range("A:A")
    With .Range("A1").CurrentRegion.Columns(2)
      If Application.CountBlank(.Cells) > 0 Then
        With .SpecialCells(xlCellTypeBlanks)
        .Formula = Replace(cFormula, "@", .Cells(1).Offset(, -1).Address(False, False))
        End With
      .Value = .Value
      End If
    End With
   End With
          
   
  '名称を入れた表に、実行操作と所要時間を追加する
  ws_master_csv_new.Columns(3).Copy
  ws_cover.Columns(4).PasteSpecial Paste:=xlPasteValues
 
 
  ws_master_csv_new.Columns(4).Copy
  ws_cover.Columns(5).PasteSpecial Paste:=xlPasteValues
  ws_cover.Columns(5).NumberFormatLocal = "h:mm:ss"

  
  ws_cover.Columns(2).Copy ws_master_csv_new.Columns(1)


  ws_master_csv_new.Activate
  

'操作時間を抽出する
  Dim i4, LastRow As Long
  LastRow = Cells(Rows.Count, 1).End(xlUp).Row
  For i4 = 1 To LastRow
    If Cells(i4, 3) = "操作終了" Then
      Rows(i4).Copy ws_usetime.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
    End If
  Next i4


'各ユーザの操作の最も古い時刻と最も新しい時刻を出力結果に抽出する
  With ws_master_csv_new.Range("A2:D" & ws_master_csv_new.Cells(Rows.Count, 1).End(xlUp).Row)
    v = .Value
    For i = 1 To UBound(v)
      m = dic(v(i, 1))
      If m = 0 Then
        n = n + 1
        v(n, 1) = v(i, 1)
        v(n, 2) = v(i, 2)
        v(n, 3) = v(i, 2)
        dic(v(i, 1)) = n
      Else
        If v(m, 2) > v(i, 2) Then
          v(m, 2) = v(i, 2)
        End If
        If v(m, 3) < v(i, 2) Then
          v(m, 3) = v(i, 2)
        End If
      End If
    Next i
    ws_res.Cells(1, 1).Resize(n, .Columns.Count - 1) = v
    
  End With
  
  Set dic = Nothing


  ws_usetime.Columns(1).Copy
  ws_usetime_new.Columns(1).PasteSpecial Paste:=xlPasteValues
    
  ws_usetime.Columns(2).Copy
  ws_usetime_new.Columns(4).PasteSpecial Paste:=xlPasteValues

    
  ws_usetime.Columns(3).Copy
  ws_usetime_new.Columns(3).PasteSpecial Paste:=xlPasteValues
    
  ws_usetime.Columns(4).Copy
  ws_usetime_new.Columns(2).PasteSpecial Paste:=xlPasteValues
  ws_usetime_new.Columns(2).NumberFormatLocal = "h:mm:ss"
    
  ws_usetime.Columns(5).Copy
  ws_usetime_new.Columns(5).PasteSpecial Paste:=xlPasteValues
  
  
  ws_addtime.Activate

  
  '各ユーザーの利用時間を合算
 With Worksheets("開始終了更新")
   For i3 = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
     vK2 = .Cells(i3, "A").Value
     dic2(vK2) = dic2(vK2) + .Cells(i3, "B")
   Next
  End With

  ReDim vA3(1 To dic2.Count, 1 To 2)
  i3 = 0
  For Each vK2 In dic2.Keys
   i3 = i3 + 1
   vA3(i3, 1) = vK2
   vA3(i3, 2) = dic2(vK2)
  Next

  Application.ScreenUpdating = False
  With Worksheets("時間合計")
   With .Range("A1").Resize(i3, 2)
     .EntireColumn.ClearContents
     .Value = vA3
     .Columns(2).NumberFormatLocal = "h:mm:ss"
     Application.Goto .Cells(1), True
   End With
  End With
  Application.ScreenUpdating = True

  Rows(1).Insert


  Set dic2 = Nothing


   'ここで、マスタCSVから取得⇒配列にいれる列を指定


  ws_res.Columns(3).Copy
  ws_last.Columns(1).PasteSpecial Paste:=xlPasteValues
  ws_last.Columns(1).NumberFormatLocal = "yyyy/m/d"
  
  ws_res.Columns(1).Copy
  ws_last.Columns(3).PasteSpecial Paste:=xlPasteValues
  
  
  ws_res.Columns(2).Copy
  ws_last.Columns(4).PasteSpecial Paste:=xlPasteValues
  ws_last.Columns(4).NumberFormatLocal = "h:mm:ss"
  
  ws_res.Columns(3).Copy
  ws_last.Columns(5).PasteSpecial Paste:=xlPasteValues
  ws_last.Columns(5).NumberFormatLocal = "h:mm:ss"
 
  
  ws_addtime.Columns(2).Copy
  ws_last.Columns(6).PasteSpecial Paste:=xlPasteValues
  ws_last.Columns(6).NumberFormatLocal = "h:mm:ss"
  
  
  ws_addtime.Rows(1).Delete
   
  ws_last.Activate
 
  Rows(1).Insert

  Range("A1").Value = "日付"
  Range("B1").Value = "部署"
  Range("C1").Value = "エージェント"
  Range("D1").Value = "ON"
  Range("E1").Value = "OFF"
  Range("F1").Value = "稼働時間"


  ws_group_new.Columns(3).Copy
  ws_group_new_2.Columns(1).PasteSpecial Paste:=xlPasteValues
 
  
  ws_group_new.Columns(2).Copy
  ws_group_new_2.Columns(3).PasteSpecial Paste:=xlPasteValues
  
  
  ws_group_new.Columns(1).Copy
  ws_group_new_2.Columns(2).PasteSpecial Paste:=xlPasteValues
  
  ws_last.Columns(3).Copy
  ws_group_new_3.Columns(1).PasteSpecial Paste:=xlPasteValues
 
  
  ws_last.Columns(2).Copy
  ws_group_new_3.Columns(2).PasteSpecial Paste:=xlPasteValues
  
  
  ws_last.Columns(1).Copy
  ws_group_new_3.Columns(3).PasteSpecial Paste:=xlPasteValues


  Const cFormula2 As String = "=VLOOKUP(@,グループ補完2!A:C,3,FALSE)"
  With Worksheets("グループ名")
    Worksheets("グループ補完").Range("A:C").Copy .Range("A:A")
    With .Range("A1").CurrentRegion.Columns(2)
      If Application.CountBlank(.Cells) > 0 Then
        With .SpecialCells(xlCellTypeBlanks)
        .Formula = Replace(cFormula2, "@", .Cells(1).Offset(, -1).Address(False, False))
        End With
      .Value = .Value
      End If
    End With
   End With


  ws_group_name.Columns(2).Copy
  ws_last.Columns(2).PasteSpecial Paste:=xlPasteValues
  

   ws_last.Activate
  
  With Range("b2:b30000")
  .Replace what:="#N/A", replacement:="dummy", lookat:=xlWhole
  End With

    
'  ws_last.SaveAs "P:\fileexp.csv", FileFormat:=xlCSV, Local:=True


  '初期画面に戻る
  ws_btn.Activate
  
      
  Debug.Print Time
  
  '処理の終了
  Close #intFree
  Close #intFree2
  
  Call MsgBox("取り込みが完了しました。", vbSystemModal)
'  Application.DisplayAlerts = False 'メッセージを非表示設定に変更
'  Application.Quit
'  Workbooks.Close
'  Application.DisplayAlerts = True 'メッセージを表示設定に変更
    
End Sub

【80534】Re:処理が遅くなってしまう
発言  amatsuno  - 19/2/28(木) 14:12 -

引用なし
パスワード
   ログ.csv

所属マスターサーバー,端末機No,コンピューター名,IPアドレス,セッションID,ログイン名,表示名,日時,カテゴリ,警告,期間,パス / URL,タイトル,説明,MACアドレス,アクセスPC,アクセスユーザー,操作種別,共有名,パス1,ドライブ種別1,デバイス名1,ベンダID1,プロダクトID1,シリアルNo1,パス2,ドライブ種別2,デバイス名2,ベンダID2,プロダクトID2,シリアルNo2,テキスト,プリンター名,印刷枚数,受信者,送信者,添付,メールサイズ,ドライブ種別,操作内容1,操作内容2,書き込み内容 / ファイル名,種別,ゲートウェイMACアドレス,ゲートウェイIPアドレス,個別情報1,個別詳細1,個別情報2,個別詳細2,個別情報3,個別詳細3,個別情報4,個別詳細4,接続元コンピューター名,接続元IPアドレス,アプリケーション名(Windowsストアアプリ),パッケージID(Windowsストアアプリ),ホスト名 / IPアドレス,ポート名 / デバイスURI,ファイルサイズ(バイト),印刷ファイルパス,管理番号1,管理番号2,デバイス種別,デバイス名,ネットワークカード情報,アクセスポイント情報,デバイス種別詳細,ファイルパス,ハッシュ値,通信先IPアドレス,通信先ポート番号,国 / 地域,累積送信データ量(バイト),累積受信データ量(バイト),アカウント監査(操作No),アカウント監査(アプリケーション名称),アカウント監査(ログインアカウント),アカウント監査(画面名称),アカウント監査(項目名称),アカウント監査(収集データ),ドメイン名,プロセスID,アラート優先順位,Webストレージ1,Webストレージ2,Webストレージ / メール,バイト数,ファイル数,値の名前(レジストリ),値の種類1(レジストリ),値の種類2(レジストリ),値のデータ1(レジストリ),値のデータ2(レジストリ),データサイズ1(レジストリ),データサイズ2(レジストリ),起動モード,補正後の日時,補正前の日時
logSV,1,logSVMM,1.2.3.4,1,11login,,2019/2/26 9:56,起動・終了,,0:00:05,,,,,,,操作終了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,1,logSVMM,1.2.3.4,1,11login,,2019/2/26 9:56,起動・終了,,0:00:05,,,,,,,操作開始,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,1,logSVMM,1.2.3.4,1,11login,,2019/2/26 9:41,起動・終了,,0:02:23,,,,,,,操作終了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,1,logSVMM,1.2.3.4,1,11login,,2019/2/26 9:39,起動・終了,,0:02:23,,,,,,,操作開始,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,1,logSVMM,1.2.3.4,1,11login,,2019/2/26 9:23,起動・終了,,0:05:08,,,,,,,操作終了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,1,logSVMM,1.2.3.4,1,11login,,2019/2/26 9:18,起動・終了,,0:05:08,,,,,,,操作開始,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,15,15SVMM,4.5.6.7,3,33login,15のユーザ,2019/2/26 15:18,起動・終了,,2:19:53,,,,,,,操作終了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,15,15SVMM,4.5.6.7,3,33login,15のユーザ,2019/2/26 12:58,起動・終了,,2:19:53,,,,,,,操作開始,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,15,15SVMM,4.5.6.7,3,33login,15のユーザ,2019/2/26 12:06,起動・終了,,0:00:44,,,,,,,操作終了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,15,15SVMM,4.5.6.7,3,33login,15のユーザ,2019/2/26 12:05,起動・終了,,0:00:44,,,,,,,操作開始,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,15,15SVMM,4.5.6.7,3,33login,15のユーザ,2019/2/26 12:01,起動・終了,,1:27:49,,,,,,,操作終了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,15,15SVMM,4.5.6.7,3,33login,15のユーザ,2019/2/26 10:33,起動・終了,,1:27:49,,,,,,,操作開始,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,15,15SVMM,4.5.6.7,0,,,2019/2/26 8:28,起動・終了,,0:00:00,,,,,,,電源ON,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,通常起動,,
logSV,18,18SVMM,13.14.15.16,1,18login,18のユーザ,2019/2/26 15:58,起動・終了,,2:18:49,,,,,,,操作終了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,18,18SVMM,13.14.15.16,1,18login,18のユーザ,2019/2/26 13:39,起動・終了,,2:18:49,,,,,,,操作開始,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,18,18SVMM,13.14.15.16,1,18login,18のユーザ,2019/2/26 13:34,起動・終了,,0:13:44,,,,,,,操作終了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,18,18SVMM,13.14.15.16,1,18login,18のユーザ,2019/2/26 13:20,起動・終了,,0:13:44,,,,,,,操作開始,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,18,18SVMM,13.14.15.16,1,18login,18のユーザ,2019/2/26 13:11,起動・終了,,0:11:45,,,,,,,操作終了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,18,18SVMM,13.14.15.16,1,18login,18のユーザ,2019/2/26 12:59,起動・終了,,0:11:45,,,,,,,操作開始,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,18,18SVMM,13.14.15.16,1,18login,18のユーザ,2019/2/26 12:02,起動・終了,,0:03:15,,,,,,,操作終了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,18,18SVMM,13.14.15.16,1,18login,18のユーザ,2019/2/26 11:59,起動・終了,,0:03:15,,,,,,,操作開始,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,18,18SVMM,13.14.15.16,1,18login,18のユーザ,2019/2/26 11:50,起動・終了,,2:58:54,,,,,,,操作終了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,18,18SVMM,13.14.15.16,1,18login,18のユーザ,2019/2/26 8:51,起動・終了,,2:58:54,,,,,,,操作開始,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,18,18SVMM,13.14.15.16,1,18login,18のユーザ,2019/2/26 8:51,起動・終了,,0:01:00,,,,,,,操作終了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,18,18SVMM,13.14.15.16,1,18login,18のユーザ,2019/2/26 8:50,起動・終了,,0:01:00,,,,,,,操作開始,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,,,
logSV,18,18SVMM,13.14.15.16,0,,,2019/2/26 8:48,起動・終了,,0:00:00,,,,,,,電源ON,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,通常起動,,
logSV,82,82SVMM,取得失敗,10,82login,82のユーザ,2019/2/26 9:24,起動・終了,,23:52:08,,,,,,,ログオフ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vbstest.co.jp,,,,,,,,,,,,,,,通常起動,,
logSV,82,82SVMM,22.33.44.55,0,,,2019/2/26 9:24,起動・終了,,0:00:00,,,,,,,電源ON,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,通常起動,,

【80535】Re:処理が遅くなってしまう
発言  amatsuno  - 19/2/28(木) 14:18 -

引用なし
パスワード
   ライセンス.csv

端末機No,端末機名,端末機タイプ,所属マスターサーバー,部署名,コンピューター名,ホスト名,ドメイン名(ワークグループ名),ログオンユーザー,表示名,OS名,プロダクトID
1,logSVMM,サーバー,logSV,NW1,logSVMM,logSVMM,vbstest.co.jp,11login,,Windows Server 2016 Standard (x64),AAAAA
15,15SVMM,PC,logSV,NW1,15SVMM,15SVMM,vbstest.co.jp,33login,15のユーザ,Windows 10 Pro (x64),AAAAA
18,18SVMM,PC,logSV,NW2,18SVMM,18SVMM,vbstest.co.jp,18login,18のユーザ,Windows 10 Pro (x64),AAAAA
75,75SVMM,PC,logSV,NW2,75SVMM,75SVMM,vbstest.co.jp,75login,18のユーザ,Windows 7 Professional,AAAAA
76,76SVMM,PC,logSV,NW2,76SVMM,76SVMM,vbstest.co.jp,76login,18のユーザ,Windows 7 Professional,AAAAA
82,82SVMM,PC,logSV,NW2,82SVMM,82SVMM,vbstest.co.jp,82login,18のユーザ,Windows 10 Pro (x64),AAAAA

【80538】Re:処理が遅くなってしまう
発言  マナ  - 19/2/28(木) 18:54 -

引用なし
パスワード
   ▼amatsuno さん:

>1つのマクロで全処理を実施する必要が発生したため、
>各処理を結合したのですが、処理が冗長化しているのか、
>別々にしたときよりも実行時間がかかってしまいます。
>

コードは全く見ていませんが
こんな感じのほうがわかりやすくないですか?

sub 実行()
  macro1
  macro2
  macro3
  macro4
end sub

【80539】Re:処理が遅くなってしまう
発言  γ  - 19/2/28(木) 20:19 -

引用なし
パスワード
   横入り失礼します。
ラップタイムをとって、どこで時間がかかっているか調査するとよいのでは?
sub 実行()
  dim t
  t = Timer
  macro1
  Debug.print "macro1 " & (Timer - t)
  t = Timer
  macro2
  Debug.print "macro2 " & (Timer - t)
  t = Timer
  macro3
  Debug.print "macro3 " & (Timer - t)
  t = Timer
  macro4
  Debug.print "macro4 " & (Timer - t)
end sub

【80541】Re:処理が遅くなってしまう
発言  amatsuno  - 19/3/1(金) 19:21 -

引用なし
パスワード
   ▼γ さん:
>横入り失礼します。
>ラップタイムをとって、どこで時間がかかっているか調査するとよいのでは?
>sub 実行()
>  dim t
>  t = Timer
>  macro1
>  Debug.print "macro1 " & (Timer - t)
>  t = Timer
>  macro2
>  Debug.print "macro2 " & (Timer - t)
>  t = Timer
>  macro3
>  Debug.print "macro3 " & (Timer - t)
>  t = Timer
>  macro4
>  Debug.print "macro4 " & (Timer - t)
>end sub


ありがとうございます。
これで確認してみます

処理ごとの時刻としては、現在
  Debug.Print Time
を使っていました
(実行時に、表示される時刻の羅列で確認していました)

【80542】Re:処理が遅くなってしまう
発言  amatsuno  - 19/3/1(金) 19:29 -

引用なし
パスワード
   ▼マナ さん:
>▼amatsuno さん:
>
>>1つのマクロで全処理を実施する必要が発生したため、
>>各処理を結合したのですが、処理が冗長化しているのか、
>>別々にしたときよりも実行時間がかかってしまいます。
>>
>
>コードは全く見ていませんが
>こんな感じのほうがわかりやすくないですか?
>
>sub 実行()
>  macro1
>  macro2
>  macro3
>  macro4
>end sub

急遽、複数の処理をひとつのマクロにする話が出たので、
とりあえず処理を複合させて動作確認を行っていました

16 / 13256 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free