Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13011 / 13644 ツリー ←次へ | 前へ→

【7460】フォルダ内の複数ファイルの指定セルデータを新規ファイルへコピーしたい Umako 03/9/5(金) 13:36 質問
【7462】Re:フォルダ内の複数ファイルの指定セルデー... INA 03/9/5(金) 13:57 回答
【7463】Re:フォルダ内の複数ファイルの指定セルデー... Umako 03/9/5(金) 14:12 質問
【7465】Re:フォルダ内の複数ファイルの指定セルデ... INA 03/9/5(金) 14:42 回答
【7474】Re:フォルダ内の複数ファイルの指定セルデ... Umako 03/9/5(金) 15:31 お礼

【7460】フォルダ内の複数ファイルの指定セルデー...
質問  Umako  - 03/9/5(金) 13:36 -

引用なし
パスワード
   すみませんが教えて下さい!7385のサッサさんの件参考にしましたが、できませんでした。
フォルダは一つでその中に100以上のエクセルファイルがあります。
エクセルファイルの名前はそれぞれAAA.xls, AAB.xls, AAC.xlsのようになっていますが、途中でBCD.xlsのようにとんでいます。
それぞれのファイルにはいくつかシートがありますが、シート1(ファイルによってシート名が違います)のセルI4にあるデータを新規ファイルにコピーしたいのです。Rangeを使用しない方法で一度試しましたが、動いたもののデータが出てきませんでした。フォルダ内のエクセル名の一覧は抽出することができましたが・・・。
宜しくお願いいたします。

【7462】Re:フォルダ内の複数ファイルの指定セルデ...
回答  INA  - 03/9/5(金) 13:57 -

引用なし
パスワード
   修正した方が、理解しやすいと思いますので、
現在、どのようなコードか書いて頂くことはできませんか?

【7463】Re:フォルダ内の複数ファイルの指定セルデ...
質問  Umako  - 03/9/5(金) 14:12 -

引用なし
パスワード
   早速のお返事をありがとうございます。私はVBA超初心者なのですが、仕事で
これをちょっとやってみてと言われ、試行錯誤で自分で作成したのです。仕事場の人は、前にやったものを参考にしてとだけ言われ、ホトホト困り果てていたのです。7385のサッサさんのものを途中まで書き込んでは見たのですが・・・。それぞれのファイルI4には4桁までの数字が数値として入っています。コピー先では、A列にファイル名、B列にI4からの数値を入れたいと考えております。私の作成したものは全然めちゃくちゃと思われますので、できたらヒントでも初めから教えていただけませんか?複数ファイル(フォルダ名:Data.xls)はCドライブ直下に保存。抽出先ファイル(Cドライブ直下に保存)名は、All.xlsです。

【7465】Re:フォルダ内の複数ファイルの指定セルデ...
回答  INA  - 03/9/5(金) 14:42 -

引用なし
パスワード
   >できたらヒントでも初めから教えていただけませんか?
抽出対象は、
フォルダ : C:\data\
ファイル : Excelファイル(.xls)

以下のマクロを実行すると、シート上に抽出されます。


Private Sub CommandButton1_Click()
Dim ファイル As String
Dim 一覧 As String
Dim Result As Long

Application.ScreenUpdating = False

'##################################
' 同フォルダ内のExcelファイル検出
'##################################

  ファイル = Dir("c:\data\*.xls")
 
  Do While ファイル <> ""
    If ファイル = ThisWorkbook.Name Then ファイル = ""
    一覧 = 一覧 & Chr(13) & ファイル
    ファイル = Dir()
  Loop

 Result = MsgBox("C:\data\ に以下のファイルが見つかりました。実行しますか?" & Chr(13) & 一覧, 4, "ファイル確認")

 If Result = 7 Then
  Exit Sub
 End If


'########################
'   データのコピー
'########################
ファイル = Dir("c:\data\*.xls")

 Do While ファイル <> ""
  If ファイル <> ThisWorkbook.Name Then
    'ファイルを開く
    Workbooks.Open Filename:="c:\data\" & ファイル
    
    'ファイル名→A列
    ThisWorkbook.Worksheets("sheet1").Range("A65536").End(xlUp).Offset(1, 0).Value = _
    ファイル
    
    'セルI4→B列
    ThisWorkbook.Worksheets("sheet1").Range("B65536").End(xlUp).Offset(1, 0).Value = _
    ActiveWorkbook.ActiveSheet.Range("I4").Value
  
    'ファイルを閉じる
    ActiveWorkbook.Close
  End If
  ファイル = Dir()
 Loop
 
 With ThisWorkbook.Worksheets("sheet1")
    .Range("A1:B1").Delete Shift:=xlUp
    .Columns("A:B").AutoFit
 End With
   
Application.ScreenUpdating = True

End Sub

【7474】Re:フォルダ内の複数ファイルの指定セルデ...
お礼  Umako  - 03/9/5(金) 15:31 -

引用なし
パスワード
   INAさん、ありがとうございます!素晴らしいです。こぉんなにすんなり、すっきり私にもできてしまうとは!Rangeは難しいから・・・と社内の人は言っておりましたが、これの方がCells.で処理するより楽でした。お忙しい中ありがとうございました。感謝です。

13011 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free