[[20201119204842]] 『CSVファイルの参照と最大値の算出』(カレーメシ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『CSVファイルの参照と最大値の算出』(カレーメシ)

VBA初心者です。
指定フォルダ内のCSVファイル全てのA列を読み込みシート2にペーストし、列ごとの最大値をシート1に縦に並べたいです。どうしたらいいでしょうか?
よければコードも書いていただけるとありがたいです。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


Dir関数を使って、順次ファイル名を取得して開く方法を使うとよいでしょう。
https://www.helpforest.com/excel/emv_sample/ex100012.htm
などが参考になると思います。
 
コピーペイストは マクロ記録で確認しましょう。
 
最大値の計算にはワークシート関数Maxを使います。
頭にWorksheetFunction. をつけることで、たいていのワークシート関数はVBAの中で使えます。

初心者であればなおさら、ご自分でトライしたほうがよいと思いますよ。
トライされたら、できたところまで示せば、皆さんからコメントがいただけるはずです。

(γ) 2020/11/20(金) 06:35


Yさんありがとうございます。
今回質問したものは,なんとか動くようにはなったのですが,CSVファイルをコピーしてきたものをシート2のA列に一列に,どんどん下につなげていきたいのですが,うまくいきません.どうすればよいですか?
Private Sub CommandButton1_Click()
Const FolderPath As String = "C:\test"
Dim Filename As String
Dim Sh0 As Worksheet, Sh As Worksheet
Dim c As Long

Set Sh0 = ActiveSheet
Filename = Dir(FolderPath & "\*.csv")
Do Until Filename = ""
c = c + 1
Set Sh = Workbooks.Open(FolderPath & "\" & Filename).Sheets(1)
Sh.Columns(1).Copy Sh0.Columns(c)
Application.DisplayAlerts = False
Sh.Parent.Close
Application.DisplayAlerts = True
Filename = Dir()
Loop
End sub

SPrivate Sub CommandButton1_Click()
For i = 0 To 1000
saidai = WorksheetFunction.Max(Worksheets("sheet1").Range("A:A").Offset(0, i))
Worksheets("sheet2").Range("A" & i + 1) = saidai
Next
End Sub
ub

(カレーメシ) 2020/11/21(土) 09:53


>Sh.Columns(1).Copy Sh0.Columns(c)
を例えば、↓のようにしてみてはどうでしょうか。
Sh.Range("A1").CurrentRegion.Copy Sh0.Cells(Sh0.Rows.Count, "A").End(xlUp).Offset(1)

2行目から始まってしまいますが、手で一行目を削除してください。
もちろん、場合分けして、初回だけはA1に貼付するように変更はできます。
必要であればトライして下さい。

(γ) 2020/11/21(土) 13:08


丁寧にありがとうございました.これからもっと勉強して,自分がしたいことを書けるよう頑張っていきます.また機会があればよろしくお願いします.
(カレーメシ) 2020/11/21(土) 14:12

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.