|
▼Blue さん:
先ほどはありがとうございました。
やっぱりつまづいてしまいました。
開いたファイル名が「マクロ.xls」の[データ]シートのセル「B12:H12」と同じであれば処理を進め、違う場合は開いたファイルを閉じ、また新たにファイルを開き、処理を進めるというマクロにしたいのですが、For Each〜とかIf
〜をどのように使ったらいいのか???です。
もしお分かりのようでしたら、教えてください!お願いします!
---------------------------------
Sub マクロ()
Dim destSheet As Worksheet
Dim srcBook As Workbook
Dim srcSheet As Worksheet
Dim r As Range
Dim s As Variant
Dim fileName As Variant
' コピー元のファイル名の取得
fileName = Application.GetOpenFilename("すべてのファイル,*.*")
If fileName <> False Then
Set srcBook = Workbooks.Open(fileName)
Else
Exit Sub
End If
' コピー先のシートを設定
Set destSheet = Workbooks("マクロ.xls").Sheets("データ")
’ここからが???
For Each s In destSheet.Range("B12:H12")
If srcBook.Name = s Then
’↑ここの記述がよく分かりません???
' コピー
For Each r In destSheet.Range("B3:H3")
On Error Resume Next
Set srcSheet = srcBook.Worksheets(r.Text)
If Err.Number <> 0 Then
MsgBox "'" & r.Text & "'というシートが存在しません。"
Exit For
End If
On Error GoTo 0
srcSheet.Range("AD20:AD22").Copy
r.Offset(1).PasteSpecial xlPasteValues
srcSheet.Range("F37").Copy
r.Offset(4).PasteSpecial xlPasteValues
srcSheet.Range("AF6").Copy
r.Offset(5).PasteSpecial xlPasteValues
Next
Else
srcBook.Close
' コピー元のファイル名の取得
fileName = Application.GetOpenFilename("すべてのファイル,*.*")
If fileName <> False Then
Set srcBook = Workbooks.Open(fileName)
Else
Exit Sub
End If
End If
Next
Set destSheet = Nothing
Set srcBook = Nothing
Set srcSheet = Nothing
Application.CutCopyMode = False
End Sub
---------------------------------
|
|