【お題】引っかけ問題(締め切り10月27日(日)23時)

よろしくお願いいたします。

環境:Excel2003

以下のようなイメージで別Sub内で宣言された変数を同じ変数名で別のSub内で参照したいです。

Sub hoge()
nn As Integer
nn = 1
End Sub

Sub hogehoge()
MsgBox (nn)
End Sub

Sub hogehogehoge()
Call hoge
Call hogehoge
End Sub

エラーが発生する為、typeについて検索をかけてみました所、以下のような変数参照方法は出てきましたが、別のSubで宣言されている変数を同じ変数名で別のSub内で参照する方法はないでしょうか?

Type PData
   hoge As String
   hogehoge As Long
End Type

Sub Sample1()
   Dim Pppp(5) As PData
End Sub

よろしくお願いいたします。

A 回答 (2件)

初めのうちはグローバル変数を使う方法でもいいのですが、


慣れてきたらグローバル変数ではなく、
HogeHogeに引数を持たせる方法を使った方がいいでしょう。
なぜ?
それは慣れてくれば分かってきます。

'-----HogeHogeを引数付きでコールする------

Sub Hoge()
  Dim nn As Integer
  nn = 1
  Call HogeHoge( nn )
End Sub

'-----これに引数を持たせる-------

Sub HogeHoge( nn As Integer)
  MsgBox nn
End Sub

'------Hogeだけをコールする-----

Sub HogeHogeHoge()
  Call Hoge
End Sub

'--------------------------------

以上ここまで。
 
    • good
    • 0
この回答へのお礼

ありがとうございます。

参考にさせていただきます。

お礼日時:2009/07/20 20:33

グローバル変数を使えば可能です。



'モジュールの先頭で変数を宣言する
Private nn As Integer


Sub hoge()
nn = 1
End Sub

Sub hogehoge()
MsgBox (nn)
End Sub

Sub hogehogehoge()
Call hoge
Call hogehoge
End Sub


http://search.goo.ne.jp/web.jsp?dummy=%F3%FE%F3% …
    • good
    • 0
この回答へのお礼

> 'モジュールの先頭で変数を宣言する
> Private nn As Integer

ありがとうございます。

privateも試したのですがエラーが出ていました。
モジュールの先頭で試しましたうまくいきました。

お礼日時:2009/07/20 20:32

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


おすすめ情報