エクセルマクロで、名前の定義の参照範囲を自動変更するVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください!
名前の定義の参照範囲を変更(横に可変)
以下のマクロを実行すると、名前の定義の範囲を一括変更します。
Sub 名前の定義の範囲変更()
Dim Last_Clm As Long
'1行目の最終列を取得
Last_Clm = Cells(1, Columns.Count).End(xlToLeft).Column
'名前定義の参照範囲を変更
ActiveWorkbook.Names.Add Name:= _
"都道府県名", RefersToLocal:= _
Range(Cells(1, 1), Cells(1, Last_Clm))
End Sub
マクロ実行前
セルA1:E1に「都道府県名」という名前定義を作成します。
セルF1:G1にデータを追加します。
追加した2つのデータも「都道府県名」という名前定義の範囲に
自動で入れたいと思います。
マクロ実行後
名前定義の参照範囲を、セルA1:G1に自動で変更できました。
名前の定義の参照範囲を変更(縦に可変)
以下のマクロを実行すると、名前の定義の範囲を一括変更します。
Sub 名前の定義の範囲変更()
Dim Last_Row As Long
'A列の最終行を取得
Last_Row = Cells(Rows.Count, 1).End(xlUp).Row
'名前定義を再作成
ActiveWorkbook.Names.Add Name:= _
"都道府県名", RefersToLocal:= _
Range(Cells(1, 1), Cells(Last_Row, 1))
End Sub
マクロ実行前
セルA1:A5に「都道府県名」という名前定義を設定します。
セルA6:A7にデータを追加します。
追加した2つのデータも「都道府県名」という名前定義の範囲に、
自動で入れたいと思います。
マクロ実行後
名前の定義の参照範囲を、セルA1:A7に変更できました。
名前の定義の参照範囲を変更(複数)
以下のマクロを実行すると、複数の名前定義の範囲を一括変更します。
Sub 名前の定義の範囲変更()
Dim Last_Clm As Long
Dim i As Long
'1~3行目をループ
For i = 1 To 3
'各行の最終列を取得
Last_Clm = Cells(i, Columns.Count).End(xlToLeft).Column
'名前定義の参照範囲を変更
ActiveWorkbook.Names.Add Name:= _
Cells(i, 1), RefersToLocal:= _
Range(Cells(i, 1), Cells(i, Last_Clm))
Next i
End Sub
マクロ実行前
シート内に3つの名前定義を設定します。
A列を「名前」、B列以降を参照範囲にしています。
F列以降にデータを追加します。
追加したデータを名前定義の範囲に、自動で含めたいと思います。
マクロ実行後
3つの名前定義の参照範囲を、まとめて変更できました。
データが増減したタイミングで、マクロを実行すると参照範囲を自動変更できます。
この記事がお役に立ちますと幸いです。
【エクセルマクロ】シートの追加・削除を自動化:超便利12選
...
「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!
リンク