Excel で [定義された名前] が参照する Excel ファイル内のデータを削除する場合 ブック内の数式から該当する [名前] を削除しても目的のデータが削除できない

Office 2003 のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Office 2003 のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

現象
Microsoft Excel 2010、Microsoft Office Excel 2007、Microsoft Office Excel 2003、Microsoft Excel 2002、および Microsoft Excel 2000 には、[名前] をセル、セル範囲に定義することで、計算や表示などの際に =A5 のようなセル直接指定をせずにセルを参照できる [定義された名前] 機能があります。ここで指定できるセル、セル範囲は同一 Excel ファイル内だけでなく、外部 Excel ファイル上のセル、セル範囲も含みます。この [定義された名前] が参照する Excel ファイル内のデータを削除する場合、ブック内の数式から該当する [名前] を削除することだけでは目的のデータは削除できません。
原因
Excel では、別のセル内の数式にて使用される場合のために、[定義された名前] がブック内の数式上に存在していない場合でも該当する [名前] のデータを Excel ファイルの内部に保持します。このため、Excel ファイル内に存在する [名前] のデータを削除したい場合、明示的に該当する [名前] の定義を削除する必要があります。
回避策
[定義された名前] を用いて外部参照を行っている Excel ファイルにて [定義された名前] の参照するデータを削除する場合、ブック内の数式から該当する [名前] を削除し、かつ、該当する [名前] の定義の両方を削除してください。[定義された名前] の定義は、以下の手順で [名前の管理] または [名前の定義] から削除します。

Excel 2010 または Excel 2007 の場合

  1. [数式] タブの [定義された名前] で [名前の管理] をクリックします。
  2. [名前の管理] ダイアログ ボックスで、削除する名前をクリックして選択します。
  3. [削除] をクリックします。または Del キーを押します。
  4. [OK] をクリックして削除されたことを確認します。

Excel 2000、2002、2003 の場合

  1. [挿入] をクリックし [名前] をクリックし [定義] メニューを選択します。
  2. [名前の定義] ダイアログ ボックスで、削除する名前をクリックして選択します。
  3. [削除] をクリックします。
  4. [OK] をクリックして削除されたことを確認します。
状況
この動作は仕様です。
詳細
  • [定義された名前] を用いて外部ファイルを参照している場合、Excel 2010 または Excel 2007 では [データ] タブの [接続] 内の [リンクの編集] から、Excel 2003、Excel 2002、Excel 2000 では [編集] メニュー内の [リンクの設定] メニューから、ブック内のセル上にある外部参照の状態について確認することができます。[定義された名前] の参照先が外部ブックのセル、セル範囲であり、かつ、その名前定義を使用している数式がブック内に存在しない場合、ブック内のセル上に外部参照が存在しないので、[リンクの編集] または [リンクの設定] はグレーアウトします。

    [リンクの編集] または [リンクの設定] メニューからは確認できませんが、[定義された名前] が存在するために、[定義された名前] が参照する外部ブックのセル、セル範囲のデータについては Excel ファイル内に保持されたままとなります。このため、Excel ファイルの使用者は、[定義された名前] が参照する外部ブックのセル、セル範囲のデータが、Excel ファイルの内部に保存されていることに気づかないまま、ファイルを送信してしまう可能性があるので注意してください。

    [定義された名前] に関するデータの有無を確認する場合は Excel 2010 またはExcel 2007 の場合は [リンクの編集] および [名前の管理]、Excel 2003、Excel 2002、Excel 2000 の場合は [リンクの設定] および [名前の定義] の両方を確認する必要があります。
  • [シートのコピー/移動機能] を利用した場合、ブックが持つ [定義された名前] はすべてコピーされます。これは製品の想定された動作です。この動作により、シート内に存在しない [定義された名前] データもコピーされます。外部参照を行っている [定義された名前] についても同様の動作です。

問題の再現手順

Excel 2010 または Excel 2007 の場合

  1. 参照先 Excel ファイル A (ExcelA.xlsx) を作成し、A1 のセルに文字列を入力します。
  2. 作業用 Excel ファイル B (ExcelB.xlsx) を作成します。
  3. 作業用 Excel ファイル B にて、参照先 Excel ファイル A を外部参照する名前を定義します。
    1. [数式] タブをクリックし、 [定義された名前] から [名前の定義] をクリックします。
    2. 名前 (ExternalName) を入力し、参照範囲として =[ExcelA.xlsx]Sheet1!$A$1 と入力します。
    3. [OK] をクリックします。
  4. 作業用 Excel ファイル B にて、手順 3 で作成した [定義された名前] を使用したセルを作成し、ファイルを保存します。具体的には A1 のセルに =ExternalName と入力します。
  5. 作業用 Excel ファイル B にて、外部参照の名前を使用したセル (例 A1 ) をすべて削除し、ファイルを保存します。
  6. 作業用 Excel ファイル B にて、シートを [XML スプレッドシート 2003]、または [Web ページ] として別名保存します。
  7. 手順 3 にて定義した [名前] のデータが保持されていることを確認します。

Excel 2003、Excel 2002、Excel 2000 の場合

  1. 参照先 Excel ファイル A (ExcelA.xls) を作成し、A1 のセルに文字列を入力します。
  2. 作業用 Excel ファイル B (ExcelB.xls) を作成します。
  3. 作業用 Excel ファイル B にて、参照先 Excel ファイル A を外部参照する名前を定義します。
    1. [挿入] メニューをクリックして [名前]、[定義] の順にクリックします。
    2. 名前 (ExternalName) を入力し、参照範囲として =[ExcelA.xls]Sheet1!$A$1 と入力します。
    3. [追加] をクリックします。
  4. 作業用 Excel ファイル B にて、手順 3 で作成した [定義された名前] を使用したセルを作成し、ファイルを保存します。具体的には A1 のセルに =ExternalName と入力します。
  5. 作業用 Excel ファイル B にて、外部参照の名前を使用したセル (例 A1 ) をすべて削除し、ファイルを保存します。
  6. 作業用 Excel ファイル B にて、シートを [XML スプレッドシート]、または [Web ページ] として別名保存します。
  7. 手順 3 にて定義した [名前] のデータが保持されていることを確認します。
プロパティ

文書番号:956738 - 最終更新日: 02/10/2011 02:21:00 - リビジョン: 2.0

Microsoft Excel 2010, Microsoft Office Excel 2007, Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition, Microsoft Excel 2000 Standard Edition

  • kbharmony kbtshoot kbexpertiseinter KB956738
フィードバック