インストラクターのネタ帳のアクセスログを眺めていて、
「application.goto reference:= 意味」
という検索キーワードに気づきました。
Application.GoToメソッドを使ったサンプルマクロ
はじめにApplicationオブジェクトのGoToメソッドの、基本を確認しておきましょう。Application.GoTo Worksheets(1).Cells(1, 1)
End Sub
上記のSubプロシーンジャを実行すると、引数に子弟された、アクティブなブックの1枚目のワークシートの、A1セルが選択されます。
Worksheet.Range.Selectは不可
RangeオブジェクトのSelectメソッドを使った、
Worksheets(1).Cells(1, 1).Select
という式で、1枚目のワークシートの、A1セルを選択できそうなものですが、1枚目のワークシートがアクティブになっていない場合には、
Worksheets(1).Cells(1, 1).Select
では実行時エラーが発生してしまいます。
Worksheets(1).Select
Cells(1, 1).Select
のように、処理を2段階に分割する必要があります。
これが、ApplicationオブジェクトのGoToメソッドを使えば、
Application.GoTo Worksheets(1).Cells(1, 1)
で済んでしまします。
Applicaton.GoToメソッドではプロシージャも選択できる
ApplicationオブジェクトのGoToメソッドでは、プロシージャを選択することもできます。Application.Goto "Samp.xlsm!Module1.Test"
End Sub
Samp.xlsmブックの、Module1モジュールに、Testというプロシージャが存在するときに上記のSubプロシージャを実行してみてください。
で、
「application.goto reference:= 意味」
という検索をなさった方の疑問の可能性は、2つ考えられます。
1つは、
Application.Goto Reference:="Samp.xlsm!Module1.Test"
というオブジェクト式をご覧になった可能性。
もう1つは、名前付き引数をよく理解していない可能性です。
まず、
Application.Goto Reference:="Samp.xlsm!Module1.Test"
をご覧になった可能性ですが、Application.GoToメソッドをよくご存知ない方が、このコードをいきなりご覧になれば、疑問に感じることでしょう。
意味は先にご紹介したGoToのサンプル2マクロと同じです。
Application.Goto "Samp.xlsm!Module1.Test"
のように標準引数ではなく、名前付き引数を使ったのが、
Application.Goto Reference:="Samp.xlsm!Module1.Test"
に過ぎません。
Application.GoTo Reference:=とは
「application.goto reference:= 意味」
と検索なさった方のもう1つの可能性は、名前付き引数を理解できていないことです。
先のプロシージャで利用した式、
Application.GoTo Worksheets(1).Cells(1, 1)
は、名前付き引数を使った、
Application.GoTo Reference:=Worksheets(1).Cells(1, 1)
と同じ意味です。
引数「Worksheets(1).Cells(1, 1)」を、標準引数で指定したのが、
Application.GoTo Worksheets(1).Cells(1, 1)
で、名前付き引数で指定したのが、
Application.GoTo Reference:=Worksheets(1).Cells(1, 1)
に過ぎません。
Application.GoToメソッドには、実は引数を2つ指定できます。
1つは、
Application.GoTo Worksheets(1).Cells(1, 1)
Application.GoTo Reference:=Worksheets(1).Cells(1, 1)
で指定されている移動先です。
この引数だけを指定するのならば、特に名前付き引数を使う必然は感じません。
メソッド名と引数から、移動先であることは、十分推測可能だと感じます。
ですが、もう1つの引数を指定する場合は、名前付き引数を使うほうが良さそうに感じます。
Application.GoToメソッドでは、移動したときにスクロールをするかどうかを第2引数に、True/Falsesで指定できます。(ちなみに省略した場合はFalseが指定されたとみなされています)
つまり、
Application.GoTo Worksheets(1).Cells(1, 1), True
といった指定ができるのです。
このとき、第2引数のTrueは、Application.GoToメソッドを熟知していなければ、何がTrueなのかわかりません。
標準引数を使った、
Application.GoTo Worksheets(1).Cells(1, 1), True
よりも名前付き引数を使って、
Application.GoTo Referece:=Worksheets(1).Cells(1, 1), Scroll:=True
とするほうが、可読性が上がります。
- Newer:VBAでコネクタが存在するか調べる
- Older:Resizeプロパティで行全体を?
Home » エクセルマクロ・Excel VBAの使い方 » Applicationオブジェクト » Application.GoTo Reference:=とは