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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
つい集めてしまうものはなんですか?
人間誰もは1つ「やたらこればかり集めてしまう」というものがあるもの。 あなたにとって、つい集めてしまうものはなんですか?
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
あなたの習慣について教えてください!!
あなたが習慣だと思って実践しているものを共有してくださいませんか? 筋肉トレーニングでも朝シャワーでも、あなたが習慣だなと思えば何でも構いません
-
VBSでDim、Private、Publicの違い
Visual Basic(VBA)
-
VBSの処理中一旦処理を止めて再開させたい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
整数を二つ読み込み、それらの...
-
プロシージャまたは関数の引数...
-
【VB6.0】 あるフォームから他...
-
PL/SQLのプロシージャ間でカー...
-
VB6のFriendについて
-
【VBScript】変数のスコープ
-
エクセルVBAでテキストボッ...
-
VBA public変数はどのようなこ...
-
アクセスできない保護レベルエ...
-
C#のループでtextboxに値を入れ...
-
visual basic初心者です。 visu...
-
VB.NETでのイベントの途中終了
-
String型の値にスラッシュをつ...
-
他のフォームから別のフォーム...
-
VBAで入力数値について
-
C言語のサフィックスについて
-
VB2010 TextBoxの数字の表示...
-
アプリの終了とイベントの発生...
-
チェックボックスを操作できな...
-
VBAでcallで呼び出したsubを終...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB6.0】 あるフォームから他...
-
プロシージャまたは関数の引数...
-
定数を構造体で・・・
-
パーソナルXLSBのfuctionを呼び...
-
PL/SQLのプロシージャ間でカー...
-
プロシージャを呼び出したプロ...
-
整数を二つ読み込み、それらの...
-
【HTML、VBScript】HTAアプリケ...
-
変数を複数のモジュール間で共...
-
VB6のFriendについて
-
VBScriptのSubって必要?
-
Excel vba で複数のテキストの...
-
subを連続で実行する
-
別のプロシージャの変数にアク...
-
HTML + VBScript で Sleep でき...
-
【VBScript】変数のスコープ
-
VB2010からPROCEDUREを実行でエ...
-
Excel VBA カーソルを当てた際...
-
変数の宣言はすべきでしょうか...
-
subプロシージャーですか?sub...
おすすめ情報