teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

ちょっと修正

2017/12/22 07:29

投稿

ttyp03
ttyp03

スコア17002

answer CHANGED
@@ -14,6 +14,7 @@
14
14
  Const WORD = "Release" ' 検索対象の文字列
15
15
  Dim wordlen As Integer ' 検索対象の文字列の長さ
16
16
  Dim lines As Variant ' 分割した行を格納する変数
17
+ Dim line As String ' 1行分
17
18
 
18
19
  ' 改行コードで分割
19
20
  lines = Split(Alllog4, vbCrLf)
@@ -22,11 +23,11 @@
22
23
  strlen = Len(WORD)
23
24
 
24
25
  ' 行ごとにループ
25
- For Each Line In lines
26
+ For Each line In lines
26
27
  ' 行の先頭に検索対象文字列があるか
27
- If Left(Line, wordlen) = WORD Then
28
+ If Left(line, wordlen) = WORD Then
28
29
  ' 検索対象文字列以降を抽出
29
- Debug.Print Mid(Line, wordlen + 2)
30
+ Debug.Print Mid(line, wordlen + 2)
30
31
  End If
31
32
  Next
32
33
  ```

1

追記

2017/12/22 07:29

投稿

ttyp03
ttyp03

スコア17002

answer CHANGED
@@ -5,4 +5,28 @@
5
5
  Line変数に行データがあると仮定して、次のようにすればRelease以降の文字列が取得できます。
6
6
  ```VBA
7
7
  Mid(Line, Len("Release ") + 1)
8
+ ```
9
+
10
+ 更新された質問の回答です。
11
+ ReadAllでまとめて変数に保持しているのであれば、改行コード単位で分割してから処理するのが良いと思います。
12
+
13
+ ```VBA
14
+ Const WORD = "Release" ' 検索対象の文字列
15
+ Dim wordlen As Integer ' 検索対象の文字列の長さ
16
+ Dim lines As Variant ' 分割した行を格納する変数
17
+
18
+ ' 改行コードで分割
19
+ lines = Split(Alllog4, vbCrLf)
20
+
21
+ ' 検索対象の文字列の長さを取得
22
+ strlen = Len(WORD)
23
+
24
+ ' 行ごとにループ
25
+ For Each Line In lines
26
+ ' 行の先頭に検索対象文字列があるか
27
+ If Left(Line, wordlen) = WORD Then
28
+ ' 検索対象文字列以降を抽出
29
+ Debug.Print Mid(Line, wordlen + 2)
30
+ End If
31
+ Next
8
32
  ```