【エクセルマクロ】名前の定義の範囲を自動変更:使用例2つ教えるよ

エクセルマクロ:名前定義の参照範囲を変更するアイキャッチ エクセルマクロで効率化する

エクセルマクロで、名前の定義の参照範囲を自動変更する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に変更することができました。


 
 

リストが増減したタイミングで、マクロを実行すると参照範囲を自動変更できます。