Excel VBA質問箱 IV

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

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


2503 / 13646 ツリー ←次へ | 前へ→

【67659】Book1に結果を表示する くま 10/12/21(火) 18:06 質問[未読]
【67664】Re:Book1に結果を表示する SK63 10/12/22(水) 9:12 発言[未読]

【67659】Book1に結果を表示する
質問  くま  - 10/12/21(火) 18:06 -

引用なし
パスワード
   以前にこちらで質問させていただいた者です。

質問【67107】にて下記の回答を頂き、イミディエイトウィンドウにて、想定通りの結果が抽出・表示されることを確認できたのですが、
そのイミディエイトウィンドウに表示されたものを、新しいブックのシートに書き出したいのですが、その方法をご教授いただけないでしょうか。

----------------------------------------------------------
Book1にマクロ実行ボタンを作成し、
ボタンを押すと抽出結果がBook1のsheet1に記載されるようにしたいです。

また、最終的にはフォルダ内の全ログファイルを処理し、
Book1のsheet1に続けて表示するマクロにしたいので、
そちらも教えていただけないでしょうか。

Sub test()
 Dim io As Integer
 Dim myLogFile As String: myLogFile = "C:\Program Files\macro\ABC.log"
 Dim buf() As Byte
 Dim ss() As String, s As String, Series, num As Long
 Dim hostname As String, ok As Boolean
 Dim i As Long, j As Long
 Dim rex As RegExp
 Dim mm As Match
 Set rex = New RegExp


 io = FreeFile()
 Open myLogFile For Binary As io
  ReDim buf(1 To LOF(io))
  Get io, , buf
 Close io
 ss = Split(StrConv(buf, vbUnicode), vbCrLf)

 With rex
   .Pattern = "[\d-]+"
   .Global = True
   For i = 0 To UBound(ss) - 1
    If Not ok Then
      If ss(i) Like "hostname*" Then
        hostname = Split(ss(i))(1)
        Debug.Print , "hostname", "vlan ID"
        ok = True
      End If
    ElseIf ss(i) Like "vlan*" Then
      If Mid$(ss(i), 6, 1) Like "#" Then
       For Each mm In .Execute(ss(i))
         s = mm.Value
         If s <> "-" Then
           Series = Split(s, "-")
           num = Series(0)
           For j = num To Val(Series(UBound(Series)))
             Debug.Print , hostname, j
           Next
         End If
       Next
      End If
    End If
   Next
 End With
End Sub


よろしくお願いいたします。

【67664】Re:Book1に結果を表示する
発言  SK63  - 10/12/22(水) 9:12 -

引用なし
パスワード
   ▼くま さん:
>以前にこちらで質問させていただいた者です。
>
>質問【67107】にて下記の回答を頂き、イミディエイトウィンドウにて、想定通りの結果が抽出・表示されることを確認できたのですが、
>そのイミディエイトウィンドウに表示されたものを、新しいブックのシートに書き出したいのですが、その方法をご教授いただけないでしょうか。
単純にdebug.printをWorkbooks("Book1").Sheets("Sheet1").Range("A1")
でとりあえずできますが、表示のしかたで工夫が必要ですが、
hostnameが一文と仮定すれば、

gyo= Range("$A$10000").End(xlUp).Row+1
Workbooks("Book1").Sheets("Sheet1").Range("A"& GYO)
A列にループの間、下に記入できますが。

>また、最終的にはフォルダ内の全ログファイルを処理し、
>Book1のsheet1に続けて表示するマクロにしたいので、
>そちらも教えていただけないでしょうか。

** これだけでは、なんとも回答はしにくいですね。**

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