ここから本文です

至急です。エクセル、VBAのマクロを大まかでいいので作成して頂きたいです。

アバター

ID非公開さん

2020/6/2219:53:17

至急です。エクセル、VBAのマクロを大まかでいいので作成して頂きたいです。

仕事でVBAマクロ作成の業務を請け負うことになったのですか、あいにく知識や経験などが一切なく…。
ネットや参考書で勉強をしていますが、納期までに間に合いそうもないので教えてほしいです。

内容としましては、いわゆる転記のマクロで、
1つのフォルダに格納されているエクセルファイル(大量にあります)を順番に展開していき、開いたシート上の特定の行に記載してあるデータをまた別の1つのシートに転記し1つの表にまとめる、というものです。

マクロの知識がほとんど無いため抽象的になってしまい申し訳ありません。
フォルダ内のファイルの特定の行からデータを抜き出して1つの表に転記していくというものが作りたいのです。
ヒントだけでも構いません。助けてほしいです。

閲覧数:
205
回答数:
4

違反報告

回答

1〜4件/4件中

並び替え:回答日時の
新しい順
|古い順

bbw********さん

2020/6/2708:42:59

データベースとして扱う方法が速い
http://www7b.biglobe.ne.jp/~whitetiger/ex/ex2002088.html

改造ポイントはCopyFromRecordsetで張り付ける場所をファイルごとに変えるだけ

だるまさん

編集あり2020/6/2320:57:55

>至急です。

どのくらい急ぎなのでしょうか。


>フォルダ内のファイルの特定の行からデータを抜き出して1つの表に転記

この程度の「サンプルコード」で良ければ書いてあげることは可能ですよ。

ただし、今日は色々とやることがあり無理なので、明日以降になりますが。

(時間が出来れば今日の夕方か夜には可能かもしれませんが)


以下追記

ちょっと時間が出来たので。

1.フォルダ選択ダイアログで、コピー元ファイルのあるフォルダを選択
2.書き込み先は新規ブックのSheet1のA1セルから
3.コピー元のファイルの種類は、*.xlsx
4.コピー元のセルは、開いたブックの1シート目のA1~E1

というコード例です。
コードは標準モジュールへコピペしてください。


Sub TransferSample()
    Dim rngS As Range 'コピー元セル
    Dim rngD As Range '貼り付け先セル
    Dim Fpath As String '対象フォルダ
    Dim Fname As String 'ファイル名
    
    'フォルダ選択
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = False Then Exit Sub
        Fpath = .SelectedItems(1) & "\"
    End With
    
    Application.ScreenUpdating = False
    
    '書き込み先(新規ブックのSheet1のA1セルから)
    Set rngD = Workbooks.Add.Worksheets(1).Range("A1")
    
    '一つ目のファイル名
    Fname = Dir(Fpath & "*.xlsx")
    'ファイルが無くなるまで繰り返し
    Do Until Fname = ""
        'コピー元セル(開いたブックの1シート目のA1)
        Set rngS = Workbooks.Open(Fpath & Fname, ReadOnly:=True).Worksheets(1).Range("A1")
        'コピー元セル拡張(5列=A1~E1)
        Set rngS = rngS.Resize(, 5)
        'コピペ
        rngS.Copy rngD
        '貼り付け先セルを1行下へ移動
        Set rngD = rngD.Offset(1)
        '開いたコピー元ブックを閉じる
        rngS.Worksheet.Parent.Close False
        '次のファイル名取得
        Fname = Dir()
    Loop
    
    Application.ScreenUpdating = True
    
    '完了
    MsgBox "完了しました。", vbInformation
End Sub

osa********さん

2020/6/2300:31:45

  • osa********さん

    2020/6/2300:34:59

    僕も初心者ですけど、Dirを使うよりは、FileSystemObjectを使うほうが、動作不良が起こりにくいと思いました。

    vba フォルダ内の全てのファイル 転記
    とか
    vba フォルダ内のファイル 転記

    などで検索して、

    「FileSystemObject」で処理してあるものだけを中心に見てみるといいのではないかと思います。



返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

よこまやさん

2020/6/2221:08:08

DIR もしくは FileSystemObjectでフォルダーのファイル名取得は
検索しましたか?

そのファイル名を使ってブックを開くは出来ますか?

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる