多くの場合、マクロ内の特定のセルを選択する必要があります。ただし、別のブックにある場合、そのセルを選択するのは困難です。

たとえば、次の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トレーニングのソースです。

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