
お世話になります。
初級者ですが、Excel 2002のVBAについてご質問をさせて頂きます。
【概要】
あるフォルダ内にある複数のExcelファイルの、特定のセルを
1つのExcelファイルに集約します。
【詳細】
1.あるフォルダ内に複数のExcelファイルがあります。Excelファイルの数は、その日によって
ことなります。
2.選択画面から、この複数のExcelファイルを選択し、選択したExcelファイルの
それぞれの「A1セル」「B1セル」「C1セル」を、「1つのExcelファイル」に張り付けます。
3.「貼り付け」→「次の列へ移動」→「貼り付け」→「次の列へ移動」というサイクルを、
選択したExcelファイルの数だけ繰り返します。
4.集約したExcelファイルのイメージは以下のとおりです。
A列 B列 C列 D列 E列 F列 G列 H列 。。。。
1行目 A1 A1 A1 A1 A1 A1 A1 A1 。。。。
2行目 B1 B1 B1 B1 B1 B1 B1 B1 。。。。
3行目 C1 C1 C1 C1 C1 C1 C1 C1 。。。。
教えて!gooの回答で、「複数のシートを、1つのExcelファイルに集約する」ものがあったので、
それを参考にしようとしましたが、僕の実力ではできませんでした。
ご助言を頂けると非常に助かります。よろしくお願いします。
No.3ベストアンサー
- 回答日時:
一例です。
ただ、シート名に一切言及がなかったので、複数選択した転記元ファイルについては開いたときに表示されるシート、転記先はこのマクロを書いたファイルのSheet1という名前のシートを対象としました。
フォルダを選択したら、対象とする複数のファイルを選択してください。(Ctrlボタンを押しながらファイルを選べば複数ファイルの選択ができます。)
Sub test01()
Dim Bks, wb
Bks = Application.GetOpenFilename(FileFilter:="Microsoft Excelブック,*.xls", MultiSelect:=True)
If IsArray(Bks) Then
Application.ScreenUpdating = False
For Each wb In Bks
Workbooks.Open wb
n = n + 1
ActiveSheet.Range("A1:C1").Copy
ThisWorkbook.Sheets("Sheet1").Cells(1, n).PasteSpecial Paste:=xlPasteAll, Transpose:=True
Application.CutCopyMode = False
ActiveWindow.Close (False)
Next
Application.ScreenUpdating = True
Else
MsgBox "キャンセル"
End If
End Sub
的確なアドバイス、有難う御座います。
僕のイメージどおりの、集約したExcelファイルができました。
今後、「F1」「A3」など、飛び飛びのセルも集約の対象になる見込みなのですが、
merlionXXさんのアドバイスを参考にさせて頂いて、対応したいと思います。
No.2
- 回答日時:
基本的には、>あるフォルダ内にある複数のExcelファイル、はすべて処理対象にするのだろう?
そのうち処理対象からはずすのはあるのか(集約ブックは別として)?。そのために操作者への表示と確認が必要なのか。
ーー
初心者といって、ここに質問する前に、あるフォルダのすべてのファイル(エクセルファイルだけでも良い)を掴むコードを勉強するべきだ。Googleで照会すれば沢山あるはず。ここへの質問もたびたび出てくる。
Googleで「フォルダ すべて ファイル 列挙」などで照会する。
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub0 … など。
定石としてVBSでやる方法、DIR関数、その他がある。
下記はVBSをつかう。エクセルのブック(データを集約するブックででも)の標準モジュールに
Sub test01()
On Error Resume Next
Dim FSO 'Scripting.FileSystemObject
Dim objFolder 'Folderオブジェクト
Dim oFile 'Fileオブジェクト
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = FSO.GetFolder("C:\Documents and Settings\XXXX\My Documents\")
For Each oFile In objFolder.Files
If Right(oFile, 4) = ".xls" Then
MsgBox oFile.Name
End If
Next
End Sub
ーー
ファイルをとらえたら、エクセルでOpen する。
そのブックのシートSheet1のA1セルなどの値を掴む。
Sub test01()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Dim FSO 'Scripting.FileSystemObject
Dim objFolder 'Folderオブジェクト
Dim oFile 'Fileオブジェクト
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = FSO.GetFolder("C:\Documents and Settings\XXXX\My Documents\")
For Each oFile In objFolder.Files
If Right(oFile, 4) = ".xls" Then
'MsgBox oFile.Name
Workbooks.Open oFile
MsgBox Worksheets("Sheet1").Range("A1")
ActiveWorkbook.Close SaveChanges:=True
End If
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
ーーーー
集約するブックへのコードはA->Bブックの例でマクロの記録を採って考えてみては。
でもさらに色々疑問点はあろうが、1つ1つやるほか無い。そういう疑問点の質問ににこのコーナーは使うべきだ。
早急なアドバイス、有難う御座います。
>集約するブックへのコードはA->Bブックの例でマクロの記録を採って考えてみては。
でもさらに色々疑問点はあろうが、1つ1つやるほか無い。そういう疑問点の質問ににこのコーナーは使うべきだ。
→imogasiさんのいうとおり、僕がもう少し努力をしてから質問をすべきでした。
今後はそのようにします。
No.1
- 回答日時:
とりあえず複数のファイルを選択して開く
↓の最後にやり方があります。
http://officetanaka.net/excel/vba/file/file02.htm
> Excelファイルの数だけ繰り返します
これも上記のサイトが参考になります。
あとは説明するまでもないですよね。
アドバイスを頂きまして、有難う御座います。
URLを確認しました。
様々な方法があるのですね、勉強になります。
>あとは説明するまでもないですよね。
→ファイル選択後の処理も、今の僕には難しいですが、
努力してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) Excel表示形式 2 2022/09/09 09:57
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Excel(エクセル) 複数の同じ様式のエクセルデータの任意セルへの入力について 3 2022/04/27 15:00
- Excel(エクセル) エクセルの掛け算 3 2022/12/13 14:49
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) Excelの関数についての質問です。(vlookup関数) A列 B列. C 1 大阪 50. 検索 6 2023/08/11 13:35
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
VBAにて複数フォルダのエクセルファイルからデータ抽出を行いたいのですが…
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの特定行の削除
-
エクセルのファイル:「自分」が...
-
彼女の過去の恋愛に嫉妬してし...
-
vbsからのExcelマクロ呼び出し...
-
EXCELVBAにて文字列にして「01...
-
エクセルの拡張子XLSのファイル...
-
ユーザーフォームをコピーする...
-
iCloud for Windowsをアンイン...
-
エクセルの固定範囲にCSVを貼り...
-
batでファイル名を変更したい(...
-
シェルでテキストファイルを半...
-
5000個のtiffファイルをpdfへ変...
-
【Excel VBA】ファイルにヘッダ...
-
フォルダ内の複数のファイルの...
-
Excel: ファイル名になぜ、[...
-
CSVファイルの暗号化
-
WINDOWS CMDからゴミ箱のファ...
-
[Unity]シーンファイルの中が消...
-
docxをmht形式で保存したファイ...
-
エクセルの一時ファイルが保存...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
彼女の過去の恋愛に嫉妬してし...
-
エクセルのファイル:「自分」が...
-
iCloud for Windowsをアンイン...
-
CSVファイルの特定行の削除
-
ファイルが移動してもリンクの...
-
[Unity]シーンファイルの中が消...
-
Excel: ファイル名になぜ、[...
-
複数のExcelファイルにある同名...
-
vbsからのExcelマクロ呼び出し...
-
EXCELVBAにて文字列にして「01...
-
FTPのgetとputの使いわけ。
-
WINDOWS CMDからゴミ箱のファ...
-
docxをmht形式で保存したファイ...
-
自動で.xlsを閉じて指定フォル...
-
5000個のtiffファイルをpdfへ変...
-
Excelに貼り付けた画像を圧縮す...
-
エクセル保存終了で一時ファイ...
-
テキストファイル操作 実行時...
-
C# リッチテキスト形式のファイ...
-
batでファイル名を変更したい(...
おすすめ情報