• 締切済み

エクセルのマクロ

あるエクセルのファイルにLIST(A列に呼びだすエクセルファイル名、B列からD列に呼びだしたエクセルに貼り付ける文字列があり、それが100行程度ある)があり、そのLIST A列に書かれているエクセルファイルを開き、その開いたエクセルファイルのある特定のセルにB列からD列にあるセルをそれぞれに貼りつける作業を繰り返すようなマクロはできないでしょうか? [流れ] LISTに書いてあるエクセルファイルを呼び出す→文字列を貼りつける→保存(できれば名前を変えて保存(その場合は、LISTのE列に名称を記載)→閉じる→次のLISTのエクセルファイルを開く→それをLISTの最後の行まで終わるまで繰り返す。 よろしくお願いします。

みんなの回答

回答No.2

マップするセルの対応、ファイル名の変換ルールを具体的に述べよ、う、、、

回答No.1

準備 ・ファイル名やデータの入ったシート名をSheet1とする。 ・上記シートのあるエクセルファイルに下記マクロを記入する (やり方は分かりますか?) ・上記エクセルファイルのあるフォルダに、フォルダfiles1, files2を作成し、files1に編集したいエクセルファイルを全部入れる ・データは2行めから始まるものとします。 準備が終わったらマクロ起動します。 Sub Test() Dim i As Long Dim myFolder1 As String, myFolder2 As String Dim mySheet As Worksheet Set mySheet=ThisWorkbook.Worksheets("Sheet1") 'ファイルの格納場所を指定する myFolder1=ThisWorkbook.pass & "\files1\" myFolder2=ThisWorkbook.pass & "\files2\" Application.DisplayAlerts = False 'ファイル上書き保存時に確認メッセージを出さないようにする For i=2 To Cells(Rows.Count, 1).End(xlup).Row Workbooks(myFolder1 & Cells(i, 1).value).open 'ファイルを開く Range("B1").value=mySheet.Cells(i, 2).value 'B列の内容をセルB1に記入する Range("C1").value=mySheet.Cells(i, 3).value 'C列の内容をセルC1に記入する Range("D1").value=mySheet.Cells(i, 4).value 'D列の内容をセルD1に記入する Activeworkbook.saveAs filename:= myFolder2 & Cells(i, 5).value '保存 Activeworkbook.close 'ファイルを閉じる Next i End sub

関連するQ&A