500のエクセルファイルがあり、それぞれのエクセルデータのA2からF2までのデータのをまとめた一覧表(1行目は、1枚目のエクセルファイルのA2-F2、2行目は2枚目のエクセルファイルの・・・、という感じでです)のを、新しいエクセルファイルもしくはテキストなどにでも手早く作れる方法をご存知の方、ご教授ください。コピペでやっていますが嫌になってしまいました。。マクロも触っては見たのですが、2枚目のエクセルファイルを2行目に、3枚目のエクセルファイルを3行目になどの方法の解決は思いつかず、挫折しました。よろしくお願いいたします
No.4ベストアンサー
- 回答日時:
対象のフォルダをcドライブの「sample」とした場合で回答します。
新規エクセルブックのシート名タブを右クリックし「コードの表示」
右側のエディタエリアに下記コードを貼り付け、実行して下さい。
G列にファイル名が入るようになっています。不要であれば
Cells(rIdx, 7).Value = fName
を削除して下さい。
Sub getA_F()
Const myPath As String = "c:\sample\"
Dim rIdx As Long
Dim fName As String
fName = Dir(myPath & "*.xls")
Do Until fName = ""
Workbooks.Open Filename:=myPath & fName
rIdx = rIdx + 1
Me.Range(Cells(rIdx, 1), Cells(rIdx, 6)).Value = ActiveSheet.Range("A2:F2").Value
Cells(rIdx, 7).Value = fName
Windows(fName).Close
fName = Dir
Loop
End Sub
おかげさまで、一覧表を作ることが出来ました。有難うございました。
マクロ初心者なのでどれが定義語なのかわからず、こんな感じで解析させていただいてます。
Sub getA_F()
getA_F()・・・?保留
Const myPath As String = "c:\sample\"
myPath は文字列として定数扱いとする
Dim rIdx As Long
Dim 変数宣言
Long 長整数型
rIdxは任意の文字
AAAでもかまわない
Dim fName As String
fnameは文字列として
fName = Dir(myPath & "*.xls")
Do Until fName = ""
保留
Workbooks.Open Filename:=myPath & fName
rIdx = rIdx + 1
繰り返し作業定義
Me.Range(Cells(rIdx, 1), Cells(rIdx, 6)).Value = ActiveSheet.Range("A2:F2").Value
(Cells(rIdx, 1), Cells(rIdx, 6))の範囲について開いたファイルの("A2:F2")で置き換え
Cells(rIdx, 7).Value = fName
(rIdx, 7)のセルにfName代入
・・・・・
まだ半分以下もわからず、悪戦苦闘しております。
お世話になりました。
No.5
- 回答日時:
path は、適切なフルパスに変更してください。
ファイル名は、1.xls、2.xls、... 500.xls と想定しています、これ以外の形式の場合は、filename を変更します。
シート名は、Sheet1 と想定しています、これ以外の場合は、postfix 内の対応する文字列を変更します。
定数を適切に変更して実行できたら、'// 注意 としている行の "A1:F2" を "A1:F500" に変更します。
上記内容がわからない場合、以下のコードは実行しない方がよいと思います。
Sub do_it()
Const path As String = "=""C:\Documents and Settings\Guest\My Documents\[""&"
Const filename As String = "ROW()"
Const postfix As String = "&"".xls]Sheet1'!R2C"""
Dim src As Range
Set src = Range("A1:F2") '// 注意
With src.Columns(1)
.FormulaR1C1 = path + filename + postfix
.FormulaR1C1 = .Value
End With
Dim it As Range
For Each it In src.Columns(1).Cells
it.FormulaR1C1 = "='" + it.Value
Next
src.Columns(1).AutoFill src
src.FormulaR1C1 = src.Value
Set src = Nothing
End Sub
有難うございます。No.4さんのマクロで手一杯でまだ分解解析を行えておりません。後ほどこのマクロからも勉強させていただきます。
私の質問にお答えいただき有難うございました。
ご厚意に厚く御礼申し上げます。
No.3
- 回答日時:
>また、ファイルは連番です。
>エクセルファイル1のA2-F2を、一覧表のA1-F1
エクセルファイル1.xls って事?
それとも、1.xls って事?
あとは、ANo.2さんのコメントをまず理解して下さい。
No.2
- 回答日時:
人間(質問者)がやっているときは、問題にならないが、プログラムでやると、すぐ問題になるのが、500のファイルをどういう範疇で選んでくる(指定する)かです。
プログラムの経験が少ないようで、質問に書いてない。例えば
A.同一フォルダにある(それも対象外は含まれて無いか)
B.ブックがあるフォルダが同一で名前が例えば共通文字列+連番になっているとか。
やりたいことは、各ブックのある決まったシート(これの名称等が同じなのかも書いてない)のA2:F2の6セルのデータを採って、
データ集約ブックの第1行目にセット。
次のブックのA2:F2をデータ集約ブックの第2行目にセットを繰り返す
ということらしい。
必要なVBAのスキルは
(1)フォルダ内のエクセル・ブックの名称を全て捉える。
場合によっては、対象外は捨てる。
(2)Openした・読み込んだあるブックのA2:F2を捉える(Copy)
(3)データ集約ブックに貼り付けか値代入する。
(4)以上繰り返し。終了条件は。
質問者にとっては、丸投げ回答をそのまま使うならともかく、VBAでは荷が重いのでは。
そもそもVBAも経験無いのに500ものブックを作ったり、扱おうというのは、おかしいと思う。設計段階から、少ないブックに収まるよう考えるべきだ。エクセルは、そんなヘビーユーザーに適したサービスは考えられていない。
No.1
- 回答日時:
500のExcelファイルの一覧表は、同じシート名の同じ範囲にあるのですか?
>1行目は、1枚目のエクセルファイルのA2-F2、2行目は2枚目のエクセルファイルの・・・、
1枚目のExcelファイルとは、1個目のファイル?複数シートの1番目?
この回答への補足
有難うございます。
>1枚目のExcelファイルとは、1個目のファイル?複数シートの1番目?
複数シートではなく、複数のファイルになります。すべて同じフォルダに入っております。
また、ファイルは連番です。
一覧表は新規に作成して、
エクセルファイル1のA2-F2を、一覧表のA1-F1
エクセルファイル2のA2-F2を、一覧表のA2-F2
エクセルファイル3のA2-F2を、一覧表のA3-F3
・・・・
にできればなと思っております。
言葉足らずになり申し訳ございません。
もしよろしければお知恵をお貸しください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aに関連する記事
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のブックで「元...
-
Lotus 1-2-3のファイルをExcel...
-
メモ帳(拡張子log)の数字デー...
-
エクセルの添付ファイルに記入...
-
エクセルでファイルを閉じても...
-
400KBのエクセルは重いの?
-
2つのエクセルファイルをデュ...
-
エクセルVBAでアクセスファイル...
-
古いエクセルのファイルを、バ...
-
エクセル2007 テキストファイ...
-
メモ帳で開く設定を元に戻したい。
-
エクセルの塗りつぶしの色が勝...
-
エクセルにクリックすると指定...
-
CSVの最終行は?
-
エクセルで1.5GBのファイルを開...
-
CSVファイル
-
エクセルの中にエクセルを添付...
-
2画面を使ってシート別に表示す...
-
Windows11で画面下の帯の部分で...
-
共有しているEXCELシートのアク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでファイルを閉じても...
-
エクセルで複数のブックで「元...
-
共有しているEXCELシートのアク...
-
Lotus 1-2-3のファイルをExcel...
-
エクセルを開いたときのシート
-
400KBのエクセルは重いの?
-
ExcelファイルがDoxillionに突...
-
エクセルの添付ファイルに記入...
-
エクセルにクリックすると指定...
-
メモ帳(拡張子log)の数字デー...
-
ACCESSのVBで、エクセルファ...
-
Windows11で画面下の帯の部分で...
-
開くと警告の出るExcelファイル...
-
エクセルVBAでアクセスファイル...
-
メモ帳で開く設定を元に戻したい。
-
CSVファイル
-
エクセルの塗りつぶしの色が勝...
-
CSVファイルでVBAを動かす方法
-
エクセルの中にエクセルを添付...
-
エクセルで1.5GBのファイルを開...
おすすめ情報