Excel VBAでセル範囲を選択する処理を書く際に、「別シート上のセルへ移動・選択したい」というケースは少なくありません。
しかしながら、Range(...).Select はアクティブなシートにしか使用できないため、シートをまたいだ選択ではエラーになります。
この記事では、アクティブでないシート上のセルに確実に移動する方法として、Application.GoTo を活用する方法をご紹介いたします。
NG例:直接の .Select は失敗する
Worksheets("入力シート").Range("C3:F12").Select '← アクティブシートでないとエラー
このように、Worksheets("入力シート") がアクティブでない状態で .Select を使うと、実行時エラーが発生してしまいます。
正しい方法:Application.GoTo を使って移動する
Application.GoTo Worksheets("入力シート").Range("C3:F12")
解説:
Application.GoToは、アクティブシートに関係なく任意のセルや範囲にフォーカスを移動できるメソッドです。- 上記のコードでは、“入力シート” の C3:F12 の範囲へジャンプして選択状態にします。
- 自動的に対象のシートがアクティブになり、指定セル範囲が選択されます。
応用:選択後の処理を続ける
With Worksheets("入力シート")
Application.GoTo .Range("C3:F12")
.Range("C3:F12").Interior.Color = RGB(255, 255, 200)
End With
Withブロックを使うことで、指定範囲に対して色を塗ったり、値を操作したりといった後続処理も明確に記述可能です。
注意点と補足
| 内容 | 説明 |
|---|---|
.Select は使わない | 選択対象のシートがアクティブでない場合、.Select はエラーになります。 |
.GoTo はフォーカスを移動できる | Application.GoTo を使えば、シートをまたいだセル移動が可能です。 |
| オプション引数あり | 第2引数に Scroll:=True を指定すると、スクロール位置も制御可能です。 |
使用シーンの例
- 特定のシート上の入力欄にジャンプさせる
- エラーセルを別シート上に表示させて補足説明を行う
- シート間で処理の起点を明示する
まとめ
| 処理内容 | コード例 | 備考 |
|---|---|---|
| シートをまたいでセルを選択 | Application.GoTo Worksheets("シート名").Range("セル範囲") | 安全にセルへ移動可能 |
.Select はNG | Worksheets(...).Range(...).Select | アクティブなシートでのみ使用可能 |
| 処理の継続 | .Range(...).Value や .Interior.Color などで装飾や値設定も可 |
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
