マクロを使用してワークシートのデータにアクセスまたは変更する場合、ほとんどの場合、範囲に依存します。そうすることで、マクロ内のセルを実際に選択する必要がなくなります。それでも、(何らかの理由で)実際に操作するセルを選択したい場合があります。選択するセルが別のブックにある場合、タスクは少し難しくなります。たとえば、次の2行のコードについて考えてみます。

Sub CellSelect1()

Workbooks("pwd.xls").Sheets("Sheet3").Select     ActiveSheet.Range("A18").Select End Sub

このマクロは、pwd.xlsワークブックでSheet3!A18を選択すると思われるかもしれません。いくつかの注意点がありますが、そうです。複数のブックを開いている場合、pwd.xlsが現在アクティブなブックでないと、このマクロはエラーになります。これは、pwd.xlsがすでに開いているが、単に選択されていない場合でも発生します。

選択コードを1行に凝縮した場合でも、同じ動作が存在します。

Sub CellSelect2()

Workbooks("pwd.xls").Sheets("Sheet3").Range("A18").Select End Sub

pwd.xlsがアクティブなブックである場合を除いて、引き続きエラーが発生します。解決策は、ジャンプの実行方法を完全に変更することです。 Selectメソッドを使用する代わりに、Gotoメソッドを使用して、メソッドのターゲットアドレスを指定します。

Sub CellSelect3()

Application.Goto _       Reference:=Workbooks("pwd.xls").Sheets("Sheet3").[A18]

End Sub

このコードは、pwd.xlsがすでに開いている場合にのみ機能しますが、現在アクティブなブックである必要はありません。指定したセルが表示しているものの左上隅にくるようにターゲットワークブックをスクロールする場合は、次に示すように、Scroll属性をTrueに指定できます。

Sub CellSelect4()

Application.Goto _       Reference:=Workbooks("pwd.xls").Sheets("Sheet3").[A18] _       Scroll:=True End Sub

注:

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

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

このヒント(11947)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。

Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります: