質問: bkName ``` ### 試したこと 1つのセルに記入できることを確認 →Rangeの使い方に問題がありそうということで、 ネットに記載されていたものをコピペしてみたが、 それでも上手くいかない。 ### 補足情報(FW/ツールのバージョンなど) Excel 2016
回答: おそらく下記の行でエラーになっていると思いますが、 ``` wsResult.Range(Cells(LastRow + 1, 1), Cells(LastRow2, 1)).Value = bkName ``` よくある間違いですね。 Cells とするとアクティブなシートを対象にしてしまいます。下記のようにちゃんとシートを省略せずに記述しないとダメですね。。 ``` wsResult.Range(wsResult.Cells(LastRow + 1, 1), wsResult.Cells(LastRow2, 1)).Value = bkName ``` 下記のような記述するするとスッキリするかも(好みですが)。 ``` wsResult.Range("A" & LastRow & ":A" & (LastRow2)).Value = bkName ``` > > 1.ブック名を切り分けて、A列とB列に記入する > > > 切り分けの条件を明確にしてください。 被験者番号は2桁固定、実験条件の桁数は可変なのですか。 また拡張子は"xls"で固定ですか。 そうだとするなら、下記のようなコードてよろしいかと。 wsResult.Range("A" & LastRow & ":A" & (LastRow2)).Value = Left(bkName, Len$(bkName)-6) wsResult.Range("B" & LastRow & ":B" & (LastRow2)).Value = Mid(bkName, Len$(bkName)-5,2) > > 2.同じファイルを何度も処理しないようにする > > これもブック名を使ってチェックすればいいのかなと思いますが、具体策が思いつかない。 > > > Findメソッドを使ってファイル名が見つかったら読み込み処理をしないようにすればいいでしょう。 条件に当てはまるセルを検索する(Find/FindNext/FindPreviousメソッド) :Excel VBA|即効テクニック|Excel VBAを学ぶならmoug ただ、自分なら、読み込み済みのファイルは、別フォルダーに移動させるようにしますね。 その方が読み込み済みかどうかが一目瞭然ですので。 ファイルを移動する(Nameステートメント):Excel VBA|即効テクニック|Excel VBAを学ぶならmoug