回答編集履歴

1

処理フローを疑似コードで示すよう追記

2020/08/08 05:12

投稿

dodox86
dodox86

スコア9183

test CHANGED
@@ -51,3 +51,95 @@
51
51
 
52
52
 
53
53
  全体の処理を考え、ループで回す部分と共通化できる部分、つまり関数化できる部分をうまく切り分けることを考えましょう。そうすることで見通しも良くなり、それぞれ単独でのデバッグや確認もし易くなるはずです。
54
+
55
+
56
+
57
+ ---
58
+
59
+ **追記しました:(2020/08/08 14:12) **
60
+
61
+
62
+
63
+ 先に示した私の回答をVBAっぽい疑似コードで示すと、以下のようになります。細かい部分は省いているものの、処理のイメージはおおむね伝わるかと思いますがいかがでしょうか。必ずしも同じ処理フローにしなければいけない訳ではなく、あくまで一例です。
64
+
65
+
66
+
67
+ ```
68
+
69
+ '* ※これは、VBAっぽい疑似コードです
70
+
71
+ '* 指定の文字列が指定のファイルに含まれているを判定する関数
72
+
73
+ Function IsContained(target, filename)
74
+
75
+
76
+
77
+ Loop filenameで指定されたファイルの全行を処理するまでループ
78
+
79
+
80
+
81
+ If 現在の対象行に対象文字列(target)が存在する Then
82
+
83
+ '* 1個でも見つかればそれ以上処理する必要はないので終了
84
+
85
+ Return "見つかった"
86
+
87
+ End If
88
+
89
+
90
+
91
+ End Loop
92
+
93
+
94
+
95
+ Return "見つからなかった"
96
+
97
+
98
+
99
+ End Function
100
+
101
+
102
+
103
+ '**************************
104
+
105
+ '* 全体の処理
106
+
107
+ Loop AファイルのG列の末端までループ
108
+
109
+ target = AファイルのG列の現在行から対象文字列を取得
110
+
111
+
112
+
113
+ Loop 配列シートの件数分ループ
114
+
115
+
116
+
117
+ filename = 配列シートの現在行からファイル名を取得
118
+
119
+
120
+
121
+ '* 対象文字列とファイル名を引数として関数呼び出し
122
+
123
+ IsContained(target, filename)
124
+
125
+ If 関数の返り値 = 対象文字列が見つかった Then
126
+
127
+ Aファイルの現在行のH列に「一致」をセット
128
+
129
+ Else
130
+
131
+ Aファイルの現在行のH列に「不一致」をセット
132
+
133
+ End If
134
+
135
+
136
+
137
+ End Loop
138
+
139
+
140
+
141
+ End Loop
142
+
143
+
144
+
145
+ ```