Home » エクセルマクロ・Excel VBAの使い方 » Applicationオブジェクト » Application.GoTo Reference:=とは

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

Application.GoTo Reference:=とは

インストラクターのネタ帳のアクセスログを眺めていて、
「application.goto reference:= 意味」
という検索キーワードに気づきました。

[スポンサードリンク]

Application.GoToメソッドを使ったサンプルマクロ

はじめにApplicationオブジェクトのGoToメソッドの、基本を確認しておきましょう。
Sub Application_GoToのサンプル1()
 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メソッドでは、プロシージャを選択することもできます。
Sub GoToのサンプル2()
 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
とするほうが、可読性が上がります。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Applicationオブジェクト » Application.GoTo Reference:=とは

「Applicationオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.