No.5ベストアンサー
- 回答日時:
#03です
Q50:X50を抜き出すなら、以下の2行を置換してください
Const startCOL As Long = 17, lastCOL As Long = 24 '列範囲を指定。Q:17、X:24
wkSTR = "'" & bkPath & "[" & buf & "]" & shtNAME & "'!R50C" & idxC
御回答ありがとうございます。
以下の通りでマクロを組んで、満足のいく結果が得られました。
Sub 他ブック抽出()
Dim idxC, ofROW, ofCOL As Integer
Dim curROW As Long, wkSTR, buf As String
Const startCOL As Long = 17, lastCOL As Long = 24 '列範囲を指定。Q:17、X:24
Const shtNAME As String = "Sheet1" '←シート名は固定。ここで指定
Const bkPath As String = "C:\ABC\" '←抽出対象のフォルダパスを指定
curROW = 1
buf = Dir(bkPath & "*.xls")
Do While buf <> ""
ActiveSheet.Cells(curROW, 1).Select
ActiveCell.Value = buf
ofCOL = 1
For idxC = startCOL To lastCOL
wkSTR = "'" & bkPath & "[" & buf & "]" & shtNAME & "'!R50C" & idxC '50行
Selection.Offset(0, ofCOL) = ExecuteExcel4Macro(wkSTR)
ofCOL = ofCOL + 1
Next idxC
curROW = curROW + 1
buf = Dir()
Loop
End Sub
'ABCフォルダにある複数ファイル全てのSheet1にあるQ50:X50のセルを
'抽出して、このシート1つに連続で貼り付けるマクロ。
'マクロはALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」
'→「挿入」→「標準モジュール」で表示される画面にペースト。
'実行はALT+F8を押して、マクロ名(他ブック抽出())を選択します。
質問というよりも、マクロ作成依頼になってしまいました。
本当にありがとうございました。
No.4
- 回答日時:
#03です。
以下の前提のもとにマクロを作成しました・500個のファイルは1つのフォルダに格納されている
・そのフォルダのEXCELファイルは全て抽出対象
・抽出するデータのシート名は共通(同じ名前)
・各シートのA1:G1を抽出する
・現在開いているシートに500ファイルのデータを抽出する(1行が1ファイルのデータ)
・A列にはブック名、B~H列にデータ(抽出元のA列~G列)を抜き出す。
なおマクロ中のシート名、フォルダのパス名は環境に合わせて修正が必要です(CONSTの2行)
Sub 他ブック抽出()
Dim idxC, ofROW, ofCOL As Integer
Dim curROW As Long, wkSTR, buf As String
Const startCOL As Long = 1, lastCOL As Long = 7 '列範囲を指定。A:1、G:7
Const shtNAME As String = "シート名" '←シート名は固定。ここで指定する
Const bkPath As String = "D:\対象フォルダ名\" '←抽出対象のフォルダパスを指定
curROW = 1
buf = Dir(bkPath & "*.xls")
Do While buf <> ""
ActiveSheet.Cells(curROW, 1).Select
ActiveCell.Value = buf
ofCOL = 1
For idxC = startCOL To lastCOL
wkSTR = "'" & bkPath & "[" & buf & "]" & shtNAME & "'!R1C" & idxC
Selection.Offset(0, ofCOL) = ExecuteExcel4Macro(wkSTR)
ofCOL = ofCOL + 1
Next idxC
curROW = curROW + 1
buf = Dir()
Loop
End Sub
マクロはALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行はALT+F8を押して、マクロ名を選択します。
この回答への補足
ご意見ありがとうございます。
仮に提示してもらった前提はほぼ合っています。
今は手元にそれらのファイルが無いので、明日以降に
チャレンジしてみます。
No.3
- 回答日時:
マクロでないと無理でしょう。
補足お願いします・500個のファイルが入っているパスとフォルダ名
・ファイルのネーミングルール(そのフォルダに対象外のファイルがある場合のみ。全ファイルで良いならそのように書いて下さい)
・各ブックで抽出対象となるシート名。また各ブックで対象となるシートは1枚だけ?
・抽出したデータをどのようにまとめればよいか
(シート名、セルの配列、何行目から開始 等)
この回答への補足
補足を付ける場所がズレていますがご容赦下さい。
ご意見もらったようにマクロを作ってみました。
それっぽく動いたのですが、セルの座標を指定する部分がよく理解できません。
Const startCOL As Long = 1, lastCOL As Long = 7 '列範囲を指定。A:1、G:7
この範囲を"Q50:X50"のセルに変更したいので、COLとROWやRangeを使って指定するようなのですが、どう入れ込んだらいいのか、何度も試行しているのですがうまくいきません。範囲の指定をどのように行えばよいのか御指示願えますでしょうか?お手数かけます。宜しくお願いします。
No.2
- 回答日時:
こんにちは。
このご質問では、いくつか分からないことがあります。
シート名が分からないので、今の段階では、一括にマクロで処理するにしても、不可能だと思います。
>A01からG01
と書かれていますが、「A1:G1」のことでしょうか?
500個のExcelファイルは、除外条件というものがあるのでしょうか?
ある程度ファイル名などが決まっているものなのでしょうか?
>抜き出したデータから最大値や平均値を出したい。
というのは、抜き出したデータすべてからの最大値や平均値ということでしょうか?
ということは、3,500個(7 * 500)のデータということでしょうか?
ご回答、ありがとうございます。
回答を得られやすいように質問したつもりでしたが、
もっと条件が必要みたいでしたね。今後は気をつけます。
他の方に案を出していただいたので、明日以降チャレンジしてみます。
後日、条件を整理して、結果をまとめます。
抜き出して1つのファイルにしてしまえば後は自力でいけると思います。
ありがとうございました。
No.1
- 回答日時:
1、特定のフォルダに対象ファイルを移す。
2、合成したい順番にファイル一覧を作成する。
3、ファイル一覧に従ってファイルを開いて新しいファイルに書き出す。
というような手順かと思います。
2は、コマンドプロンプトでディレクトリを取ってファイルへ出力しても良いかも知れません。
>DIR *.xls > xlslist.txt
xlslist.txtをメモ帳で開いて、合成したい順番になっているのか確認できます。
後は、合成するのみです。
※多分、20~30行程度のVBAコードを書けば実現できると思います。
この回答への補足
御回答ありがとうございます。
開くファイルリスト.txtまでの作成は容易なのですが、
抽出して1つのファイルにするのがわからないのです・・・
マクロ必須ですかね
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelインポート時の「実行時エ...
-
CSVファイルの結合(重複データ...
-
エクセルの指数を無効にしたい
-
ExcelVBAで今開いているユーザ...
-
別のパソコンでエクセルのマク...
-
複数のデータ系列の線の太さを...
-
エクセルで印刷する方法 エクセ...
-
Powerpointでランダムな数字の...
-
エクセルでツールバーに「縮小...
-
VBAでシートの保護をかける際に...
-
エクセルVBAでmeに相当するもの...
-
エクセルでマクロを有効にする...
-
VBA マクロ実行時エラー’1004Ra...
-
EXCELで日付を自動でファイル名...
-
コピーしたファイルのマクロを...
-
作ったマクロが増えてきて、ど...
-
cellsで特定の離れた範囲を選択...
-
エクセル2013vbaで、見えない名...
-
エクセルファイルを自身のファ...
-
アドインファイルの作り方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの指数を無効にしたい
-
複数のCSVファイルを横に並べて...
-
excelインポート時の「実行時エ...
-
VBAでCSVの1行目だけを書き換え...
-
CSVファイルの結合(重複データ...
-
「ほかのアプリケーションを無...
-
複数のcsvファイルを1つのEXCEL...
-
EXCELにcsv形式の外部データを...
-
Excel VBAを使った複数のCSVフ...
-
二つのCSVファイルを照らし合わ...
-
datファイル→csvファイル→datフ...
-
大量のCSVデータを1つのエ...
-
【エクセル VBA】CSVファイルの...
-
CSVファイルをエクセルに取込む...
-
EXCELLの動きが遅い
-
複数のエクセルファイルをひと...
-
256以上のCSVファイルをEXCELで...
-
エクセルで複数ファイルのシー...
-
THUNDERBIRD フォルダ 取り込み...
-
EXCELで外部データの取り込みが...
おすすめ情報