「一気に最後まで読んだ」本、教えて下さい!

いつもお世話になっております。
下記のコードは
"C:\123456\Desktop\新しいフォルダー\"
のフォルダにあるファイルの形式により
A列 xlsm
B列 txt
という感じで振り分けることに
できます。検索などで調べて完成しましたが、

添付ファイルのように
出力すると行がはなれて出力されます。
離れないようにするにはどうしたら
良いのか教えてくれませんでしょぅか


Sub fefa()
Dim FSO As Object, F As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim Str As String

Str = "C:\123456\Desktop\新しいフォルダー\"

For Each F In FSO.getfolder(Str).Files

Select Case Mid(F, InStrRev(F, ".") + 1)
Case "xlsm"
i = i + 1
Cells(i, 1) = F.Name

Case "txt"
i = i + 1
Cells(i, 2) = F.Name
End Select
Next


End Sub

「条件によりファイルの形式により振り分ける」の質問画像

A 回答 (2件)

こんばんは


考えすぎはよくありませんよ。単純にカウント変数を2つに分け
Case "txt"
n = n + 1
Cells(n, 2) = F.Name
のようにしてみれば、
    • good
    • 0
この回答へのお礼

いつもありがとうございます
なるほどです
うまくいきました。
ありがとうございました。

お礼日時:2021/08/15 07:20

こんばんは



それぞれの列で、空きセルを作らずに上に詰めたいってことでしょうか?

方法はいろいろ考えられますけれど、ご提示のコードの方法で行うなら・・・
現状は書き込む行を変数 i にして、どちらの列に記入しても +1するようになっているので、ご提示の結果のように各行にはどちらか一つの列にだけ記入されるようになっています。

これを、行カウントの変数をA列用とB列用に分けて別々に用意すれば宜しいのでは?
具体的には(例えば、変数 j をB列用とするなら、B列に記入する際には i はそのままで、j をインクリメントするようにすればよさそうに思います。
    • good
    • 0
この回答へのお礼

いつもありがとうございます
理解できました。
ありがとうございました。

お礼日時:2021/08/15 07:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!