| 
    
     |  | はじめまして。 ある範囲を指定して名前をつけたいのですがどうしていいかわからず
 こちらに行き着きました。
 どうかお知恵をおかし下さい。
 あるシートのモジュールのコードです。
 登録シートで入力したことを材料一覧シートに
 登録していくようになってます。
 そこで材料一覧シートにあらたに登録された2行(コード中の矢印のところ)を範囲指定して
 登録シートにあったセルD2に入力されている言葉と同じ
 名前をつけたいのですが、どのように書き足したら
 良いでしょうか?
 Private Sub Worksheet_Activate()
 Dim n As Long
 With Sheets("登録").ComboBox1
 .Clear
 For n = 1 To 25
 If Sheets("材料一覧").Cells(1, n) <> "" Then
 .AddItem Sheets("材料一覧").Cells(1, n)
 End If
 Next
 End With
 End Sub
 
 
 Private Sub CommandButton1_Click()
 Dim 目的の列 As Long, 最下行 As Long, 入力した行 As Long
 入力した行 = Cells(Rows.Count, 3).End(xlUp).Row
 If ComboBox1.Value = "" Then
 MsgBox "献立分類を選んでください。"
 Exit Sub
 End If
 If Range("D2") = "" Then
 MsgBox "献立名を入力してください。"
 Exit Sub
 End If
 If 入力した行 = 4 Then
 MsgBox "材料を入力してください。"
 Exit Sub
 End If
 With Sheets("材料一覧")
 目的の列 = WorksheetFunction.Match(ComboBox1.Value, .Rows("1:1"), 0)
 最下行 = .Cells(Rows.Count, 目的の列 + 2).End(xlUp).Row
 .Cells(最下行 + 2, 目的の列).Value = Range("D2").Value
 .Cells(最下行 + 2, 目的の列 + 1).Resize(入力した行 - 4, 2) = Range("C5:D" & 入力した行).Value          ’ ←ここの値を範囲指定してD2に入力されているものと同じ名前をつけたいのです
 
 End With
 
 With Sheets("献立名")
 目的の列 = WorksheetFunction.Match(ComboBox1.Value, .Rows("1:1"), 0)
 最下行 = .Cells(Rows.Count, 目的の列).End(xlUp).Row
 .Cells(最下行 + 1, 目的の列).Value = Range("D2").Value
 
 End With
 Range("D2,C5:D" & 入力した行).ClearContents
 
 End Sub
 
 |  |