タイムマシーンがあったら、過去と未来どちらに行く?

Option Explicit

Sub ko_ru()
Dim x As Long
Call hen
x = x + y

End Sub
Sub hen()
y = 20
End Sub
と言う二つのコードを書いたのですがko_ruのコードで変数がありませんと出ますcallで変数の宣言
までは呼び出せないのでしょうか?
教えてくれたら幸いです

質問者からの補足コメント

  • cellでhenを呼び出したのにhenで宣言した
    変数は使えないのがなぜなのかわかりませわん!

      補足日時:2022/03/30 23:08

A 回答 (2件)

こんばんは


変数yは宣言されていません。
プロシージャ内で宣言された変数の有効範囲は、そのプロシージャ内のみです。
変数yをモジュールレベルで使用する場合は、モジュールの宣言セクションで変数yを宣言する必要があります
そうする事で同じモジュールに書かれたプロシージャ内での値を取得(代入値を)する事が出来ます。

変数の有効範囲に関する 参考サイトです
http://officetanaka.net/excel/vba/variable/05.htm

ご質問とは離れますが、他の方法(Function)として変数を使用せず戻り値を利用する方法もあります
Functionの使い方
https://www.sejuku.net/blog/28904
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2022/03/31 07:14

こんばんは



>変数がありませんと出ます
そうではなくて、「変数が定義されていません」ではないのですか?

Option Explicitの宣言をしているので、定義されていない変数はエラーになります。
「Option Explicitってなあに」という場合は以下を。
https://docs.microsoft.com/ja-jp/office/vba/lang …
    • good
    • 1
この回答へのお礼

ありがとうございます

お礼日時:2022/03/31 07:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報