No.1ベストアンサー
- 回答日時:
少し厳しいかもしれませんが、ご自分でサンプルコードを書いて実行してみましたか?
そういう経験の積み重ねが土台を作る一つの要因になるのだと私は思っています。
もしも検証できない状況にあるのでしたら、ごめんなさい。
かく言う私自身、VBScriptには明るくないので、正しいかどうかわかりませんが、
結論から言うと以下の通りかと思っています。
■結論
・グローバル領域(=いかなるプロシージャにも所属しない領域)で宣言された変数は、どこからでも参照可
・プロシージャ内(←ネストレベルは関係ない)で宣言された変数は当該プロシージャ内のみで有効
・プロシージャのネスト時に参照可能な変数は、グローバル変数と自プロシージャ内で宣言された変数のみ(=自分を呼び出した親プロシージャ内の変数を参照することはできない)
・プロシージャの引数がグローバル変数と同名の場合、引数が優先される
・条件分岐やループの内側か外側かは関係ない(内側で宣言した変数を外側で参照できる)
#プロシージャ≒「ファンクション」です。
■参考URL
http://www.google.com/search?q=vbscript+%E5%A4%8 …
http://www.keynus.co.jp/~uhara/html/vbscript/16. …
これで答えになっているでしょうか??
No.3
- 回答日時:
VBScript の場合は、Sub プロシージャやFunction 関数、プロシージャの外で変数の宣言を行えば、グローバル・スコープになるし、各々のSub - End Sub や Function - End Functionの中で変数の宣言を行えば、その範囲のローカルのスコープになります。
これ自体は、VBなどと変わらないです。具体的な問題を抱えているなら、その例をあげていただいたほうが話が早いです。こういう総体的な話では、これだけの話にしかならないはずです。サブルーチンやFunction の引数の話はスコープとは別問題です。No.2
- 回答日時:
回答番号:No.1で回答した者です。
一応テストコードを載せておきますので試してみてください。
エラーになる箇所は適宜コメントアウトしてくださいね。
'------------------------------------------------------------
'テストコード
'------------------------------------------------------------
option explicit
'グローバルな領域で変数を宣言、値を代入します
dim hoge
hoge = "グローバル変数"
print(hoge)
'実行環境が不明なので出力の窓口を下記プロシージャで統一します
sub print(str)
wscript.echo str
'response.write str & "<br />"
end sub
'引数なしのsubプロシージャ
sub sub_without_arg()
print(hoge)
end sub
'グローバル変数と同名の引数をとるsubプロシージャ
sub sub_with_arg(hoge)
print(hoge)
end sub
'引数なしのfuncitonプロシージャ
function func_without_arg()
print(hoge)
end function
'グローバル変数と同名の引数をとるfuncitonプロシージャ
function func_with_arg(hoge)
print(hoge)
end function
'テスト実行
sub_without_arg()
sub_with_arg("subの引数")
func_without_arg()
func_with_arg("funcの引数")
'条件分岐の中で宣言した変数を条件分岐の外側から参照
if true then
dim hoge_if
hoge_if = "条件分岐の中で宣言した変数"
end if
print(hoge_if)
'ループの中で宣言した変数をループの外側から参照
do
dim hoge_loop
hoge_loop = "ループの中で宣言した変数"
loop while(false)
print(hoge_loop)
'「ファンクションの中のファンクション」確認用 外側
function outer_function()
dim fuga : fuga = "外側のプロシージャで宣言した変数"
inner_function()
end function
'「ファンクションの中のファンクション」確認用 内側
function inner_function()
print(fuga)
end function
'外側の変数を内側から参照できるか
outer_function()
'プロシージャ内で宣言した変数をグローバル領域から参照できるか
print(fuga)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) ChatGPT ExcelVBAの精度は3.5と4で違いはある? 1 2023/04/21 21:00
- Access(アクセス) ExcelのVBAコードについて教えてください。 4 2023/01/20 09:44
- デスクトップパソコン 自作パソコンで、プリント基盤から実装してる人いますか? 2 2022/08/29 16:04
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- Illustrator(イラストレーター) イラストレーターCSで、ロゴをスコープ型に修正する方法のお尋ねです 1 2022/10/13 17:46
- C言語・C++・C# 変数の初期化について 5 2022/10/02 08:55
- JavaScript 条件に該当した時のみ定数を宣言する事はできますか 8 2023/03/15 05:55
- 軍事学 自衛隊の小銃のスコープ、サイト搭載率が少ないので、これは自衛隊だけかなと思い、他国の軍隊の射撃訓練を 2 2022/04/06 01:42
- 株式市場・株価 (株)Wスコープ2日連続のSTOP安!! 2 2022/09/20 20:08
- 高校 対数方程式につきまして 4 2022/05/05 07:55
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数を複数のモジュール間で共...
-
【HTML、VBScript】HTAアプリケ...
-
整数を二つ読み込み、それらの...
-
定数を構造体で・・・
-
PL/SQLのプロシージャ間でカー...
-
エクセルVBAでテキストボッ...
-
VB.NETでのイベントの途中終了
-
VBA public変数はどのようなこ...
-
String型の値にスラッシュをつ...
-
ExcelのVBAで文章にある複数の...
-
vbsでスクロール位置を指定して...
-
texで図と表を並べたい
-
演奏記号の・・・・
-
一行飛ばしで合計
-
TextBoxの内容を右寄せ
-
Googleシート「A1」でなくて「A...
-
ユーザーフォームへのデータ入...
-
GetNextWindowがDLLファイルUse...
-
テキストボックスにカーソルを...
-
複数条件のオートフィルタ(VBA)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プロシージャまたは関数の引数...
-
【VB6.0】 あるフォームから他...
-
【VBScript】変数のスコープ
-
【HTML、VBScript】HTAアプリケ...
-
PL/SQLのプロシージャ間でカー...
-
ExcelのVBA。Staticな変数について
-
整数を二つ読み込み、それらの...
-
プロシージャを呼び出したプロ...
-
パーソナルXLSBのfuctionを呼び...
-
定数を構造体で・・・
-
プログラムの素朴な質問です 分...
-
引き渡したループ処理で変数がn...
-
SOP
-
HTML + VBScript で Sleep でき...
-
変数を複数のモジュール間で共...
-
引数
-
関数の引数
-
Excel vba で複数のテキストの...
-
subプロシージャーですか?sub...
-
VB初心者の私に教えてください!
おすすめ情報