Excel VBAにおいて、エラーにならずに非表示シートを操作する方法を説明しています。
エラーになる原因
エラーになる原因は、操作するシートがプログラムで選択できない状態(非表示)となっているために起こります。
- 操作するときに表示化して、操作後に非表示化する
→一時的に表示化されるものの、結果的には非表示となる - 非表示シートを選択せずに、セルを直接参照する
→シート自体を参照するのではなく、値のみを参照する
※シート自体の操作が必要な場合は、使えない方法
次にサンプルコードを説明します。
エラーの対処方法
シートの表示/非表示を切り替える
操作時のみ表示化することで、エラーを回避する方法です。
サンプルコードの流れは、以下のようになっています。
- 操作したいシートを表示化
- シートを選択
- (必要な操作)
- 操作していたシートを非表示化
With Worksheets("非表示シート") .Visible = True .Activate .Range("A1").Select .Visible = False End With
非表示シートを選択しない
非表示シートを選択せずに、セル値のみを取得する方法です。
Worksheets("表示シート").Range("A1") = Worksheets("非表示シート").Range("A1")
まとめ
非表示シートをエラーにならずに操作する方法を紹介しました。
シートを選択する必要があるのかで対処方法が変わってきますので、適切な方法で対処しましょう。
- 一度表示してからシートを操作する方法
- 非表示シートを選択せずにセル値のみを取得する方法