Excel ですべての範囲名をプログラムでコピーする

概要

Microsoft Office Excel では、作業中のブックから別のブックにすべての範囲名をコピーするために使用できる Microsoft Visual Basic for Applications (VBA) マクロを作成できます。

詳細

Microsoft は、例示のみを目的としてプログラミング例を提供しており、明示または黙示にかかわらず、いかなる責任も負わないものとします。 これには、市販性または特定の目的との適合性についての黙示の保証も含まれますが、これに限定はされません。 この記事は、説明されているプログラミング言語、手順を作成およびデバッグするために使用されているツールに読者が精通していることを前提にしています。 Microsoft のサポート エンジニアが、特定の手順の機能をわかりやすく説明します。 ユーザー固有の要件に合わせた機能の追加、プロシージャの作成などの内容変更は行っておりません。

マクロを作成して使用して、すべての範囲名を作業中のブックから別のブックにコピーするには、次の例の手順を使用します。

  1. Excel を起動し、新しいブックでセル A1 の選択をクリックします。

  2. 以下のいずれかの手順を実行します。

    • Microsoft Office Excel 2007 で、[数式] タブをクリックし、[定義された名前] グループの [名前の定義] をクリックします。
    • 以前のバージョンの Microsoft Excel の Microsoft Office Excel 2003 で、[挿入] メニューの [名前] をポイントし、[定義] をクリックします。
  3. [ 名前の定義 ] ダイアログ ボックスの [ ブック内の名前 ] ボックスに「Range1」と入力し、[OK] をクリック します

  4. セル B1 を選択します。

  5. 以下のいずれかの手順を実行します。

    • Excel 2007 で、[数式] タブをクリックし、[定義された名前] グループの [名前の定義] をクリックします。
    • Excel 2003 以前のバージョンの Excel では、[挿入] メニューの [名前] をポイントし、[定義] をクリックします。
  6. [ 名前の定義 ] ダイアログ ボックスの [ ブック内の名前 ] ボックスに「Range2」と入力し、[OK] をクリック します

  7. Alt キーを押しながら F11 キーを押して Visual Basic エディターを起動します。

  8. [挿入] メニューの [モジュール] をクリックします。

  9. モジュール シートで、次のコードを入力します。

    Sub Copy_All_Defined_Names()
       ' Loop through all of the defined names in the active
       ' workbook.
         For Each x In ActiveWorkbook.Names
          ' Add each defined name from the active workbook to
          ' the target workbook ("Book2.xls" or "Book2.xlsm").
          ' "x.value" refers to the cell references the
          ' defined name points to.
          Workbooks("Book2.xls").Names.Add Name:=x.Name, _
             RefersTo:=x.Value
       Next x
    End Sub
    
  10. Alt キーを押しながら F11 キーを押して Excel に戻ります。

  11. 以下のいずれかの手順を実行します。

    • Excel 2007 で、 Microsoft Office ボタンをクリックし、[名前を 付けて保存] をポイントし、[ Excel Macro-Enabled ブック] をクリックし、ブックを Book1.xlsm として保存します。
    • Excel 2003 以前のバージョンの Excel では、[ファイル] メニューの [保存] をクリックし、ブックを Book1.xls として保存します。
  12. 以下のいずれかの手順を実行します。

    • Excel 2007 で、 Microsoft Office ボタンをクリックし、[ 新規作成] をクリックし、[ 空白のブック] をクリックして、[ 作成] をクリックします。
    • Excel 2003 の [ファイル] メニューの [新規作成] をクリックし、[新しいブック] 作業ウィンドウで [空白のブック] をクリックします。
    • Excel 2002 以前のバージョンの Excel では、[ファイル] メニューの [新規作成] をクリックし、[ブック] をクリックし、[OK] をクリックします。
  13. 以下のいずれかの手順を実行します。

    • Excel 2007 で、 Microsoft Office ボタンをクリックし、[名前を 付けて保存] をポイントし、[ Excel Macro-Enabled ブック] をクリックし、ブックを Book2.xlsm として保存します。
    • Excel 2003 以前のバージョンの Excel では、[ファイル] メニューの [名前を付けて保存] をクリックし、ブックを Book2.xls として保存します。
  14. Book1 に切り替えます。

    注:

    Book1 ボタンを表示するには、Book2 を最小化または復元する必要がある場合があります。

  15. 以下のいずれかの手順を実行します。

    • Excel 2007 で、[ 開発 ] タブをクリックし、[ マクロ] をクリックします。

      注:

      [開発者] タブが表示されない場合は、[Microsoft Office] ボタンをクリックし、[Excel のオプション] をクリックし、[一般的] をクリックし、[リボン チェック] ボックスの [開発者の表示] タブをクリックして選択し、[OK] をクリックします

    • Excel 2003 以前のバージョンの Excel では、[ツール] メニューの [マクロ] をポイントし、[マクロ] をクリックします。

  16. [ マクロ名 ] ボックスの一覧 で、[Copy_All_Defined_Names] をクリックし、[ 実行] をクリックします。

  17. Book2 に切り替え、セル A1 の名前は Range1、セル B1 の名前は Range2 であることに注意してください。