ExcelWork.info

Excel(エクセル)のマクロ・VBA・関数・操作などのメモ

セル・セル範囲に名前を定義・削除(Name プロパティ・Names コレクション)

      2017/11/01

セル・セル範囲に名前を定義(Name プロパティ)

Range オブジェクトName プロパティを使用して、セルやセル範囲に、「名前」を定義します。

Name プロパティを使用し「名前」を定義すると、「ブックレベルの名前」として登録されます(エクセルの「名前管理」ダイアログボックスを表示した時、「範囲」の列に「ブック」と表示されます)。

Name プロパティ

【書式】

<取得>
result = Object.Name

<設定>
Object.Name = string

引数・戻り値

  • object  ・・・  対象となる Range オブジェクト
  • string  ・・・  セル・セル範囲に定義する「名前」を指定します。(文字列)
  • result  ・・・  セル・セル範囲に定義されている「名前」。指定した範囲に「名前」が定義されていない場合はエラーとなります。


セル・セル範囲に名前を定義・削除(Names コレクション)

Names コレクションは、セルやセル範囲に、「名前」を定義したり、削除したりすることができます。

Names コレクションAdd メソッドを使用して「名前」を定義した場合は、「ブックレベルの名前」または、「ワークシートレベルの名前」のいずれかで登録することができます。(エクセルの「名前管理」ダイアログボックスを表示した時、「ブックレベル」の場合は、「範囲」の列に「ブック」と表示され、「ワークシートレベル」の場合は、「シート名」が表示されます)。

Names コレクション(Add メソッド)

【書式】

Object.Names.Add ( [ Name, RefersTo, Visible, MacroType, ShortcutKey, Category, NameLocal, RefersToLocal, CategoryLocal, RefersToR1C1, RefersToR1C1Local ] )

引数・戻り値

  • object  ・・・  対象となる Names オブジェクト
    ここに、Workbook オブジェクトを指定すると、「ブックレベル」の Names コレクションを、Worksheet オブジェクトを指定すると、「シートレベル」の Names コレクションを、取得・設定することができます。
  • Name  ・・・  「名前」として使用する文字列を指定します。(省略可)
  • RefersTo  ・・・  「名前」と関連付けるセル範囲を指定します。参照が存在しない場合は、Nothing が返されます。(省略可)
  • Visible  ・・・  「名前」を表示する場合は True を指定、非表示にする場合は False を指定します。非表示の場合は、[名前の定義]、[名前の貼り付け]、および [ジャンプ] ダイアログ ボックスに表示されません。既定値は True です。(省略可)
  • MacroType  ・・・  マクロの種類を、次のいずれかの値で指定します。
    1・・・ユーザー定義関数 (Function プロシージャ)
    2・・・マクロ (Sub プロシージャ)
    3・・・なし (定義した名前はユーザー定義関数またはマクロを参照しません)
    既定値は 3 です。(省略可)
  • ShortcutKey  ・・・  マクロが設定されている場合のショートカットキーを指定します。(省略可)
  • Category  ・・・  引数 MacroType1 または 2 のときに、「名前」が参照するマクロや関数の分類を指定します。(省略可)
  • NameLocal  ・・・  引数 Name が指定されていない場合は、名前として使用する文字列(日本語等)を指定します。名前には、スペースを含めることはできません。(省略可)
  • RefersToLocal  ・・・  引数 RefersToRefersToR1C1、および RefersToR1C1Local が指定されていない場合は、A1 形式の表記法を使用して、文字列で名前の参照先を指定します。(省略可)
  • CategoryLocal  ・・・  引数 Category が指定されていない場合は、ユーザー設定関数の分類を示す文字列を指定します。(省略可)
  • RefersToR1C1  ・・・  引数 RefersToRefersToLocal、および RefersToR1C1Local が指定されていない場合は、R1C1 形式の表記法を使用して名前の参照先を指定します。(省略可)
  • RefersToR1C1Local  ・・・  引数 RefersToRefersToLocal、および RefersToR1C1 が指定されていない場合は、R1C1 形式の表記法を使用して文字列(日本語等)で名前の参照先を指定します。(省略可)
  • result  ・・・  作成した「名前」を表す Name オブジェクト

Names コレクション(Item メソッド)

【書式】

Object.Names.Item ( [ Index, IndexLocal, RefersTo ] )

引数・戻り値

  • object  ・・・  対象となる Names オブジェクト
  • Index  ・・・  対象の定義名またはインデックス番号を指定します。
  • IndexLocal  ・・・  定義名の名前を日本語等(ユーザーの言語)で指定します。
  • RefersTo  ・・・  「名前」が参照するセル範囲を指定します。
  • result  ・・・  コレクションに含まれる Name オブジェクト

3つの引数は、省略可能ですが、必ず 1 つだけ引数を指定するようにしてください。

Names コレクション(プロパティ)

【書式】

Object.Names.Application

Object.Names.Count

Object.Names.Creator

Object.Names.Parent

項目の説明

  • object  ・・・  対象となる Names オブジェクト
  • Application  ・・・  オブジェクトを返すプロパティです。対象となるオブジェクトが指定されない場合は、Excel アプリケーション (Application オブジェクト) を返します。対象となるオブジェクトが指定された場合は、指定されたオブジェクトを作成した Application オブジェクトを返します。値の取得のみ可能です。
  • Count  ・・・  コレクションに含まれるオブジェクトの数を表す長整数型(Long)の値を返します。
  • Creator  ・・・  指定されたオブジェクトを作成したアプリケーションを、32 ビットの整数値で返します。値の取得のみ可能です。長整数型(Long)の値を使用します。
  • Parent  ・・・  指定されたオブジェクトの親オブジェクトを返します。値の取得のみ可能です。


「名前付きセル範囲」使用例

サンプルVBAソース

実行結果

作成した「名前付き範囲」の名前・アドレスを表示

Name プロパティ・Names コレクション 例1

修正した「名前付き範囲」の名前・アドレスを表示

Name プロパティ・Names コレクション 例2

シートレベルの「名前付き範囲」を削除したあとの「名前付き範囲」を表示

Name プロパティ・Names コレクション 例3

すべての「名前付き範囲」を削除

Name プロパティ・Names コレクション 例4



まとめ

「名前」の作成


「名前」の情報取得


「名前」のセル範囲取得・セル範囲の変更


「名前」の削除


 - セルの操作 , , , , , , ,

Message

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

指定した条件に一致するセルを取得(SpecialCells メソッド)

SpecialCells メソッド SpecialCells メソッドは、指定し …

Row プロパティ・Column プロパティ 例
セルの行番号または列番号を取得(Row プロパティ,Column プロパティ)

Row プロパティ・Column プロパティ Row プロパティは、指定したセル …

書式で検索(Find メソッド,FindFormat プロパティ)

書式で検索 書式を条件にセルを検索する場合、まず、その書式条件を CellFor …

オートフィルタ(アイコンで抽出する)AutoFilter メソッド

オートフィルタ(アイコンで抽出する) Excel 2007 から、条件付き書式で …

セルに値を設定する・セルの値を参照する(Value プロパティ)

Value プロパティ Value プロパティは、セルの値を取得したり、値を設定 …

オートフィルタの設定と解除(AutoFilter メソッド)

AutoFilter メソッド オートフィルタを設定する場合、AutoFilte …

オートフィルタ(日付フィルタ)AutoFilter メソッド

日付フィルタを使用してレコードを抽出する Excel 2007 から「日付フィル …

セルが結合セルの一部である場合、その結合セルの範囲を取得(MergeArea プロパティ)

MergeArea プロパティ MergeArea プロパティは、指定したセルが …

罫線の設定(Borders プロパティ)

罫線の設定 罫線を一括(上下左右すべて)で設定するには、Borders プロパテ …

オートフィルタ(抽出件数の取得・結果集計)AutoFilter メソッド

ワークシート関数の Subtotal 関数 の使い方 VBA には、オートフィル …