エクセルマクロで、名前の定義の参照範囲を自動変更するVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください!
名前の定義の参照範囲を変更をする(横に可変)
以下のマクロを実行すると、名前の定義の範囲を一括変更します。
Sub 名前の定義の範囲変更()
Dim Todofuken_Name() As Variant
Dim Todofuken_Cnt As Long
Dim i As Long
'リストの数
Todofuken_Cnt = Cells(1, Columns.Count).End(xlToLeft).Column
'リストの値を取得
For i = 1 To Todofuken_Cnt
ReDim Preserve Todofuken_Name(i)
Todofuken_Name(i) = Cells(1, i)
Next i
'リストを名前定義
ActiveWorkbook.Names.Add Name:= _
"都道府県名", RefersToLocal:= _
Range(Cells(1, 1), Cells(1, Todofuken_Cnt))
Erase Todofuken_Name
End Sub
マクロ実行前
セルA1:E1に「都道府県名」という名前の定義が設定されている状態です。
セルF1:G1にデータを追加しました。
この追加した2つのデータも「都道府県名」という名前定義の範囲に自動で入れたいと思います。
マクロ実行後
名前の定義の参照範囲を、セルA1:G1に変更することができました。
リストが増減したタイミングで、マクロを実行すると参照範囲を自動変更できます。
名前の定義の参照範囲を変更をする(縦に可変)
以下のマクロを実行すると、名前の定義の範囲を一括変更します。
Sub 名前の定義の範囲変更()
Dim Todofuken_Name() As Variant
Dim Todofuken_Cnt As Long
Dim i As Long
'リストの数
Todofuken_Cnt = Cells(Rows.Count, 1).End(xlUp).Row
'リストの値を取得
For i = 1 To Todofuken_Cnt
ReDim Preserve Todofuken_Name(i)
Todofuken_Name(i) = Cells(i, 1)
Next i
'リストを名前定義
ActiveWorkbook.Names.Add Name:= _
"都道府県名", RefersToLocal:= _
Range(Cells(1, 1), Cells(Todofuken_Cnt, 1))
Erase Todofuken_Name
End Sub
マクロ実行前
セルA1:A5に「都道府県名」という名前の定義が設定されています。
セルA6:A7にデータを追加しました。
この追加した2つのデータも「都道府県名」という名前定義の範囲に自動で入れたいと思います。
マクロ実行後
名前の定義の参照範囲を、セルA1:A7に変更することができました。
リストが増減したタイミングで、マクロを実行すると参照範囲を自動変更できます。