- ベストアンサー
別のSubで生成した乱数の呼び出し
visual studioのVBAでアプリを作っています。 Private Sub tmr_1(略)で乱数を3つ生成しました。タイマーがtrueの間、乱数を生成し続けるコードを打っています。この乱数を別のSubでも使いたいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
VBだとしたらクラスの先頭でグローバル変数を宣言してRnd生成したSubとは別のSubで使うようにすればいかがですか。 Button1_ClickでRnd生成したものをButton2_Clickで使う Public Class Form1 Private RndVal As Double 'Rnd生成するSub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click RndVal = Rnd() MessageBox.Show(Int(RndVal * 100)) End Sub '他のSubでRnd生成されたものを使うSub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click MessageBox.Show(Int(RndVal * 100)) End Sub End Classass
その他の回答 (4)
- kkkkkm
- ベストアンサー率66% (1742/2617)
No.3の追加です。VBの場合 他のクラスで使いたい場合は グローバル変数用のモジュールを作成する (他の所でRndValの宣言をしない) Module M_GlobalVar Public RndVal As Double End Module どのクラスからでも RndVal でアクセスできます。 またはグローバル変数用のクラスを作成してプロパティにする Public Class GlobalVar Public Shared Property RndVal As Double End Class 他のクラスで使う場合 GlobalVar.RndVal でアクセスする 例:Class UserControl1の場合 Public Class UserControl1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click MessageBox.Show(Int(GlobalVar.RndVal * 100)) End Sub End Class
- kkkkkm
- ベストアンサー率66% (1742/2617)
No.3の補足です。 VBAでしたら VBA グローバル変数 で検索してみてください。
- imogasi
- ベストアンサー率27% (4737/17070)
私は乱数などには、素人ですが、下記が参考になりませんか。 通常で(コンピュータ世界で)言う乱数は、「疑似乱数」で、(同じ)「乱数の種」を指定して、乱数を発生させると、同じ乱数列を発生させることが出来る。 http://web.tuat.ac.jp/~muroo/random.html ーー ウイキペディア https://ja.wikipedia.org/wiki/%E6%93%AC%E4%BC%BC%E4%B9%B1%E6%95%B0 ーー Googleで、「同じ種の乱数発生 VB.NET」で照会 https://dobon.net/vb/dotnet/programing/random.html
お礼
ありがとうございます
- kon555
- ベストアンサー率51% (1848/3569)
方法は色々ありますが、詳細が一切不明なのでどんなケースでも使えるモノを。 生成した乱数をテキストファイルなどに書き出し、乱数を使いたい側で読み込めば、別subだろうと別ソフトだろうと可能です。 http://officetanaka.net/excel/vba/file/file08c.htm http://officetanaka.net/excel/vba/file/file08b.htm
お礼
とても参考になりました。ありがとうございます
お礼
わかりやすい解説、ありがとうございました