グローバルスコープとは、スクリプト全体のことです。関数の中はローカルスコープと呼びます。
変数がどの範囲で有効かを示す「有効範囲」のことで、会社に例えると分かりやすいです。
目次
グローバルスコープ (Global Scope)
会社全体がグローバルスコープです。
どの関数にも属していない、スクリプトの一番外側の領域を指します。ここで宣言された変数(GlobalまたはDimで作成)はグローバル変数となり、会社のロビーにある共有の掲示板のようなものです。
どの部署(関数)の社員も、その掲示板に書かれた情報(変数の値)を読んだり書き換えたりできます。
ローカルスコープ (Local Scope)
関数の中はローカルスコープです。
これは会社の中の各部署のプライベートなオフィスに例えられます。関数の中でLocalを使って宣言された変数(ローカル変数)は、その部署の中にあるホワイトボードのようなものです。
- その部署の社員(関数内のコード)しか、そのホワイトボードは見たり書いたりできません。
- 部署での仕事が終わる(関数が終了する)と、ホワイトボードの内容はきれいに消されてしまいます。
- 他の部署(他の関数)からは、そのホワイトボードの存在すら知ることができません。
コードでの例
; === グローバルスコープ (会社の共有掲示板) ===
Global $g_CompanyName = "株式会社AutoIt"
_PrintSalesDeptReport()
; MsgBox(0, "エラー", $sReportTitle) ; ← これはエラーになる。営業部のホワイトボードは見えない!
; === ローカルスコープ (営業部オフィス) ===
Func _PrintSalesDeptReport()
; この変数は、この関数の中だけで有効な「ホワイトボードのメモ」
Local $sReportTitle = "8月度 売上報告"
; 営業部は、自分たちのホワイトボードも、会社の共有掲示板も両方見ることができる
MsgBox(0, "営業部より", "会社名: " & $g_CompanyName & @CRLF & "件名: " & $sReportTitle)
EndFunc ;==>_PrintSalesDeptReport
コメント