ぱっと見、マグロに見えるおいしそうなタイトルになってしまった
いえ。
エクセルです
VBAです。マクロです。
元プログラマーだから誰かが書いてたやつの修正はできた。(多少)
新規でかくってむずい。
料理に例えると、
出来上がった料理に調味料足すのと、
材料から用意して一から作る。ぐらい違う
と言うわけで書いていたのは、
ファイルの中身を、集計シートにまとめるマクロ
今日はそのメモを貼り付けたかっただけ。
明日からはコーチングとか、心理学とかを綴っていきますよっと。
Sub D連携_集計()
'
' D連携_集計 Macro
'
' ファイルを開いて入力データをコピーする処理
Dim dIn As Workbooks
'貼り付け元のファイルパス
Dim filePath(5) As String
filePath(0) = Range("D2").Value & "\" & Range("E2").Value
filePath(1) = Range("D3").Value & "\" & Range("E3").Value
filePath(2) = Range("D4").Value & "\" & Range("E4").Value
filePath(3) = Range("D5").Value & "\" & Range("E5").Value
filePath(4) = Range("D6").Value & "\" & Range("E6").Value
'貼り付け先のシート名
Dim sheetName(5) As String
sheetName(0) = "d_In"
sheetName(1) = "d_web"
sheetName(2) = "d_In"
sheetName(3) = "d_In"
sheetName(4) = "d_In"
Dim itiranPath As String
itiranPath = Range("D9").Value & "\" & Range("E9").Value
Dim lastRow As Long
Dim arrInt As Integer
For arrInt = 0 To 4 '配列の要素数分にしたい
If filePath(arrInt) <> "\" Then '★本当はファイルが存在しなければ。にしたい
Workbooks.Open Filename:=filePath(arrInt)
'★空白行あるとき注意。ファイル閉じない方が確認できてよいかも。
'★無条件にA2にしてよいか?エクスポートミスったら1行目消える
Range("A2").Select
Rows(Selection.Row & ":" & Selection.End(xlDown).Row).Select
Selection.Copy
' 一覧を開いて該当するシートの最終行に張り付け
'今回張り付けたセルを黄色にする
Workbooks.Open Filename:=itiranPath
Worksheets(sheetName(arrInt)).Activate
lastRow = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Cells.Interior.ColorIndex = xlNone
Rows(lastRow).PasteSpecial
Selection.Interior.Color = 65535
End If
Next arrInt
' ファイルの保存、クローズについては未対応。問題ないことが確認できてから
' 新設等を判断するセルは集計ファイルに作る
' 特定のセルの情報を張り付けるのも別マクロでする
'
'
' ActiveWorkbook.Save
' itiran.Close
End Sub
Sub テスト()
'
' テスト Macro
'
'
Workbooks("Book1").Activate
Dim ws As Worksheet
Set ws = Worksheets(インデックス番号)
Dim TargetBook As Workbook, i As Long, j As Long
Set TargetBook = Workbooks.Open("Book2.xlsx")
ThisWorkbook.Activate
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1) = TargetBook.Sheets("Sheet1").Cells(j, 1) Then
Cells(i, 3) = Cells(i, 2) * TargetBook.Sheets("Sheet1").Cells(j, 2)
Exit For
End If
Next j
Next i
TargetBook.Close
End Sub