内容
ブックA.Sheet1のA列に入力してあるブック名を開き、B列で指定しているシートに対して処理を行う。
A列に入力してある各ブックは、ブックAと同じ階層に保存してある。
コード
Sub wrk()
Dim wb As String
Dim ws As String
Dim openBook As Workbook
Dim i As Long
Dim LastRow As Long
'一番左のシートの1列目の最終行番号
LastRow = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To LastRow
'開きたいブック名
wb = ThisWorkbook.Sheets(1).Cells(i, 1)
'開きたいシート名
ws = ThisWorkbook.Sheets(1).Cells(i, 2)
'開いたブックを格納
Set openBook = Workbooks.Open(ThisWorkbook.Path & "¥" & wb)
'開いたブックopenBookに対しての処理
'=======================
'シートを選択
openBook.Sheets(ws).Select'=======================
'保存して閉じる
openBook.Close savechanges:=True
Next i
MsgBox "完了"
End Sub
解説
A列の最終行を取得し、For~Nextで全データに対して処理を行っていく。
最終行について
'一番左のシートの1列目の最終行番号
LastRow = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
データが入力されているシートや列を指定する場合は、赤字の部分を書き換えてください。
(例)データという名前のシートの2行目のデータを使用する場合
LastRow = Sheets("データ").Cells(Rows.Count, 2).End(xlUp).Row
参照するデータについて
'開きたいブック名
wb = ThisWorkbook.Sheets(1).Cells(i, 1)
'開きたいシート名
ws = ThisWorkbook.Sheets(1).Cells(i, 2)
こちらも最終行取得と同様に、赤字部分を書き換えてください。