お世話になります。
以下の条件で動作するマクロを必要としています。
詳しい方、ご教授のほどよろしくお願いします。
細かな条件もあり恐縮です。一部無理でも結構です。
1.複数のcsvファイルのデータを1つのエクセルファイルにコピー統合したい。
2.ファイル名は「帳票00」~「帳票10」となっており、番号順に開いてコピーする。
3.ファイルは一部「帳票5(1)」「帳票5(2)」と分かれている。
4.ファイルは一部「帳票7」の次が「帳票9」(8は欠番)などととなっている。
5.コピーは行列を入れ替えてコピーする。
6.2つ目以降のファイルをコピーする位置は、前ファイルの次の行からとする。
(帳票00が10行まで入っていたら、帳票01は11行A列から入るようにする。)
7.2つ目の「帳票01」以降はA列B列はコピー不要とする。
(A列B列は見出しとなっていて、はじめに1回コピーされればよい。)
No.1
- 回答日時:
こんばんは
とりあえずすぐに回答できるところから。
1&2
csvを順次「Worksheets.Open」で開きコピー&ペーストします。
3&4
「元データのcsvファイルがすべて同じフォルダにある」&「そのフォルダには余計なcsvファイルは置かれていない」という条件なら、Dir関数を使って対象ファイルのリストを作ることができます。
5
PasteSpecial メソッドの「Transpose」のオプションで設定できます。
マクロの記録で、形式を指定して貼り付け(行列を入れ替えるにチェック)で試してみてください。
6&7
Ifで分岐できます。
質問にはありませんが元データのcsvファイルの最終行を取得するには
Cells(Rows.Count, "A").End(xlUp).Row
が使えます。(バージョン2000~2007に対応、エクセルの最終行までデータが入っていないことが条件)
以上、参考になれば。
追加で回答できる部分があれば、改めて回答します。
また、詳細が分からない場合には、「補足」に書き込みしてください。
この回答への補足
早速のご回答ありがとうございます。
補足ですが、ファイルは実際は100個ほど同じフォルダ内にあります。
他に余計なファイルはありません。
ファイル名の番号の若い順から開くにはどうすればよいでしょうか。
No.2ベストアンサー
- 回答日時:
>ファイル名の番号の若い順から開くにはどうすればよいでしょうか。
3&4の回答で書いたDirのあとソートすればできます。
以下はサンプルです。
-----------------------------------------------
Sub ファイルリスト作成()
'初期設定
Dim Line As Long
Dim Filename As String
Dim Filenames As String
Sheet1.Cells.ClearContents
'リスト作成
Line = 1
Filename = Dir(ThisWorkbook.Path & "\*.*")
Do While Filename <> ""
Filenames = StrConv(Filename, vbLowerCase)
If Not (Filenames Like "*.xls" Or Filenames Like "*.bat" ) _
Then
Line = Line + 1
Cells(Line, 1) = Filename
End If
Filename = Dir()
Loop
If Line = 1 Then
MsgBox "対象となるファイルがありません"
Exit Sub
End If
'ソート
[A1].Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル2010、図が大きすぎま...
-
バッチファイル XCOPYで上書き...
-
エクセルで複数のコメントのサ...
-
Vba初心者です。下記のコード助...
-
frxファイルの役目
-
ファイルサーバ上のファイルが...
-
ハイフネーションされている英...
-
bat 同名ファイルコピー時にリ...
-
エクセルのハイパーリンクがコ...
-
拡張コピー(CopyExt)の代用ソフ...
-
VB.NETでのネットワーク参照
-
同じファイル名 上書きしないフ...
-
日付の新しいファイルのみ自動...
-
VB6.0でデバッグ時、文字列の値...
-
PDFファイルを枚数指定してコピー
-
vbsでファイルやフォルダのコピ...
-
[エクセル]コピーするとオブジ...
-
特定のエクセルファイルが止ま...
-
バッチファイルのコピーで
-
コマンドプロンプトで、指定し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
frxファイルの役目
-
バッチファイル XCOPYで上書き...
-
エクセルのハイパーリンクがコ...
-
同じファイル名 上書きしないフ...
-
Vba初心者です。下記のコード助...
-
xcopyでのバッチコピー方法でコ...
-
エクセル2010、図が大きすぎま...
-
バッチファイル 別ファイルにリ...
-
vbsでExcelのシートをコピーす...
-
アクセス クエリを別のファイ...
-
[エクセル]コピーするとオブジ...
-
パワポでスライドをコピーでき...
-
bat 同名ファイルコピー時にリ...
-
エクセルVBAで開いているファイ...
-
FTPとファイルコピーの違いにつ...
-
ファイルサーバ上のファイルが...
-
ファイルをコピーできない
-
開いている別のファイルにExcel...
-
FSO.CopyFileでのエラー無視方法
おすすめ情報