循環参照は、数式が直接または間接的に、数式が格納されているセルを参照する場合に発生します。たとえば、B3に式= B2 + B3が含まれている場合、B3には循環参照が含まれます。

通常、循環参照は数式の誤りを表します。ただし、循環参照が望ましい状況がいくつかあります。

Excelでは、ワークシートに循環参照を含めることができますが、それらについては少し注意が必要です。

ほとんどの場合、反復制御をオンにしている場合、Excelは循環参照に対して非常に寛容です。 ([ツール]メニューから[オプション]を選択し、[計算]タブを表示します。)[反復]チェックボックスをオンにして循環参照を入力すると、Excelは抗議しません。

代わりに、[計算]タブの設定を使用して、循環参照が完了したと見なされるまでに繰り返される回数を制御します。

[反復]チェックボックスの設定はブックの一部として保存されているように見えますが、後でブックがExcelに読み込まれるときに常に注意が払われるとは限りません。実際、ブックを開く前に次のいずれかが発生した場合、設定は完全に無視されます。

  • Excelを最初に起動したときに作成されたデフォルトのブック以外のブックを開きます。

  • デフォルトのブックが表示されているときに[反復]チェックボックスを変更します。

Excelが行うことは、最初に開いたブックの[反復]チェックボックスの設定を調べることです。この設定は、Excelとの現在のセッションの「デフォルト」になります。同じセッション中にロードされた他のブックの場合、保存された[反復]チェックボックスの設定は無視されます。

さらに、システムでPersonal.xlsブックが定義されている場合は、そのファイル内の[反復]チェックボックスの設定が常にデフォルトとして使用されます。どうして? Personal.xlsは常に最初に開かれるブックであり、最初に開かれるブックは常に設定のデフォルトを定義するためです。

循環参照を使用する保存済みのブックがあり、[反復]チェックボックスがオフになっている場合(デフォルトまたは明示的に)、循環参照を含むブックを開くと、Excelに警告が表示されます。警告を表示したくない場合は、他のブックの前にブックを開くか(反復設定が使用されるように)、ブックを開く前に[反復]チェックボックスを明示的に設定することをお勧めします。

ブックを開く順序を気にせず、常に[反復]チェックボックスの設定を変更したくない場合は、ブックの[反復]チェックボックスが確実に選択されるようにするマクロを作成できます。ブックのOpenイベントにマクロを割り当てると、ブックが開かれるたびにマクロが実行されるため、表示したくない警告が表示されなくなります。

マクロは次のように表示されます:

Private Sub Workbook_Open()

Application.Iteration = True End Sub

システムにPersonal.xlsブックが定義されている場合は、個々のブックではなく、このマクロをシステムに追加できます。このようにして、すべてのExcelセッションで[反復]チェックボックスが常に選択されていることを確認できます。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2816)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。