#author("2023-04-24T12:09:51+09:00","","")
#navi(../)
* Excel VBAを使ってでセルの範囲に名前をつける・名前を削除するサンプル [#t63403cb]
Excel VBA使ってセルの範囲に名前をつける、名前を削除するサンプルコードを以下に記します。
#contents
#htmlinsert(office_ads_top.html)
* 動作確認環境 [#da1d2355]
-Windows 10 22H2
-Microsoft® Excel® for Microsoft 365 MSO (バージョン 2303 ビルド 16.0.16227.20202) 32 ビット
* 関連記事 [#la690c0e]
-[[Excelで名前定義された範囲に配列の値を設定するサンプル>VBA/Excelで名前定義された範囲に配列の値を設定するサンプル]]
-[[名前の定義を削除する手順>Excel/名前の定義を削除する手順]]
*関連サイト [#u77b59d4]
-[[Microsoft: Worksheet.Name プロパティ (Excel)>https://learn.microsoft.com/ja-jp/office/vba/api/excel.worksheet.name]]
-[[Microsoft: Names オブジェクト (Excel)>https://learn.microsoft.com/ja-jp/office/vba/api/excel.names]]
* セル範囲に名前とは [#yeb39116]
Excelではセルの範囲に名前を付けることができます。~
以下のようなものです。
#br
#ref(01.png)
#br
* セル範囲を指定し名前を付ける、名前を削除するサンプル [#y007cd51]
以下にサンプルコードを記します。
Option Explicit
'範囲に名前をつける呼び出しテスト関数
Sub SetNameTest()
SetRangeName "Sheet1", "A1:B10", "VBAで設定"
End Sub
'範囲名を削除する呼び出しテスト関数
Sub RemoveNameTest()
RemoveName "Sheet1", "VBAで設定"
End Sub
'引数で渡された範囲に名前をつける
Sub SetRangeName(worksheetName As String, targetRange As String, rangeName As String)
Dim oSheet As Worksheet
Set oSheet = Worksheets(worksheetName) 'ワークシートを選択
oSheet.Activate 'ワークシートをアクティブ化
oSheet.range(targetRange).Name = rangeName '範囲(targetRange)に名前を設定
oSheet.range(rangeName).Select '範囲(rangeName)で範囲を指定
Set oSheet = Nothing
End Sub
'引数で渡された範囲名を削除する
Sub RemoveName(worksheetName As String, rangeName As String)
Dim oSheet As Worksheet
Set oSheet = Worksheets(worksheetName) 'ワークシートを選択
oSheet.Activate 'ワークシートをアクティブ化
ActiveWorkbook.Names(rangeName).Delete 'ワークブック内の名前の定義を削除する
End Sub
** 範囲に名前を定義する [#l02e2a7e]
上記サンプルコードの ''SetNameTest'' を実行すると、 ''SetRangeName'' を呼び出しA1:B10に 引数で渡した定義名「VBAで設定」を設定します。~
実行例は以下の通りです。
#ref(11.png)
** 範囲定義の名前を削除する [#p1d880c2]
上記サンプルコードの ''RemoveNameTest'' を実行すると、 ''RemoveName'' 引数で渡した定義名「VBAで設定」を削除します。~
尚、本関数 ''RemoveNameTest'' を実行する時は先に ''SetNameTest'' を実行してください。~
実行例は以下の通りです。
#ref(12.png)
以上、セル範囲への名前定義と削除をVBAで操作するサンプルコードでした。
#htmlinsert(office_ads_top.html)