回答編集履歴

1

追記

2019/01/28 05:07

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -11,4 +11,28 @@
11
11
  下記のような記述するするとスッキリするかも(好みですが)。
12
12
  ```vba
13
13
  wsResult.Range("A" & LastRow & ":A" & (LastRow2)).Value = bkName
14
- ```
14
+ ```
15
+
16
+ ---
17
+ > 1.ブック名を切り分けて、A列とB列に記入する
18
+
19
+ 切り分けの条件を明確にしてください。
20
+ 被験者番号は2桁固定、実験条件の桁数は可変なのですか。
21
+ また拡張子は"xls"で固定ですか。
22
+ そうだとするなら、下記のようなコードてよろしいかと。
23
+
24
+ wsResult.Range("A" & LastRow & ":A" & (LastRow2)).Value = Left(bkName, Len$(bkName)-6)
25
+ wsResult.Range("B" & LastRow & ":B" & (LastRow2)).Value = Mid(bkName, Len$(bkName)-5,2)
26
+
27
+
28
+ > 2.同じファイルを何度も処理しないようにする
29
+ > これもブック名を使ってチェックすればいいのかなと思いますが、具体策が思いつかない。
30
+
31
+ Findメソッドを使ってファイル名が見つかったら読み込み処理をしないようにすればいいでしょう。
32
+
33
+ [条件に当てはまるセルを検索する(Find/FindNext/FindPreviousメソッド) :Excel VBA|即効テクニック|Excel VBAを学ぶならmoug](https://www.moug.net/tech/exvba/0050116.html)
34
+
35
+ ただ、自分なら、読み込み済みのファイルは、別フォルダーに移動させるようにしますね。
36
+ その方が読み込み済みかどうかが一目瞭然ですので。
37
+
38
+ [ファイルを移動する(Nameステートメント):Excel VBA|即効テクニック|Excel VBAを学ぶならmoug](https://www.moug.net/tech/exvba/0060093.html)