VBA セル範囲の名前の設定と削除、一覧で取得



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

どうも、taka(@takabou63)です(^^♪

さて、Excelを使用している人の中で【セルに名前を付ける】人っていますよね?

個人的には管理がめんどくさい関係であまり使用しないのですが、使用している方は以外と多いはずです。

じゃあVBAでどうやってセルに名前を付けるのか?

今回はそのあたりについて解説していきます(^.^)

セルに名前を付ける【Nameプロパティ】

セルに名前を定義するには【Rangeオブジェクト】の【Nameプロパティ】を使用します。

下記のコードはA1:C5の範囲に【レンジ】という名前を定義するコードです。(電子レンジではないですよ←)

Sub Sample()

'セルA1からC5の範囲に【レンジ】という名前を付けます
Range("A1:C5").Name = "レンジ"

End Sub

「数式タブ」の名前の管理で確認してみるとしっかりと名前が定義されているのが確認できます!

セルの名前でセルを指定する

さて、せっかく指定した名前なので使用しないともったいないです(笑)

選択するのはとっても簡単で、Range(”定義したセルの名前”)としてあげればいいだけです。

Sub Sample()

'名前を定義した【レンジ】を選択する
Range("レンジ").Select

End Sub

ちゃんと画像左上の名前ボックスにも【レンジ】と記載されていますね!

定義した名前を削除する

さて、定義した名前を削除したい場合は【Deleteメソッド】を使用すればOKです。

試しに【レンジ】を削除してみます。

Sub Sample()

'名前を定義した【レンジ】を削除する
Range("レンジ").Name.Delete

End Sub

名前の一覧から【レンジ】が削除されました。

VBAでセルの名前の一覧を取得する

さて、セルの名前をどう定義したかというのを覚えておくのは正直大変です(;^ω^)

なので今度はVBAでセルの名前を一覧で取得してみましょう!

VBA以外からは、リボンの【数式タブ】の【名前の管理】から見ることもできます。

まず、セルの名前を取得する前に適当にセルの名前を定義しておきます。

Sub Sample()

Range("A1:C5").name = "レンジ1"
Range("B1:D5").name = "レンジ2"
Range("C1:E5").name = "レンジ3"
Range("D1:F5").name = "レンジ4"
Range("F1:G5").name = "レンジ4"

End Sub

セルの名前の一覧を取得するコード

セルの名前を取得するにはNamesコレクションから取得するのが良いでしょう。

簡単な解説はコメントアウトしておりますので参考にしてください!

Sub Sample()
        
    Dim i As Long
    Dim ms As String
    
    With ActiveWorkbook
    '①↓アクティブbookで定義されているセルの名前の数を取得
    For i = 1 To .Names.Count
        '②↓定義されている数の分セルの名前と範囲を取得
       ms = ms & .Names(i).name & .Names(i).RefersTo & vbCrLf
        
     Next '定義されている名前の数の分処理を繰り返す
    End With
        
  MsgBox ms
        

End Sub

フォロー・チャンネル登録お願いします

VBA以外についてのブログはこちら↓

https://yb-log.com/

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です