Attribute VB_Name = "Module1" '■ マクロ500連発<第2段> ' ' 分析ツールの「乱数発生」ダイアログを利用する ' ' Copyright(C) 2000 Sunago ' ' RandomQ([outrng], [variables], [points], [distribution], [seed], ' [randarg1], [randarg2], [randarg3], [randarg4], [randarg5]) ' ' 引数:outrng 出力先テーブルの左上隅のセル参照 ' または、ワークシート名を指定 ' (引数省略時は、新規ブックへ出力) ' variables 変数の数 ' points 乱数の数 ' distribution 分布(1:均一,2:正規,3:ベルヌーイ,4:二項,5:ポアソン,6:パターン,7:離散) ' seed ランダムシード ' randarg1〜5 パラメータ(分布ごとに異なる) ' ・均一分布(distribution=1) '  randarg1 値の下限 ' randarg2 値の上限 ' ・正規分布(distribution=2) ' randarg1 平均値 ' randarg2 標準偏差 ' ・ベルヌーイ分布(distribution=3) ' randarg1 p値 ' ・二項分布(distribution=4) ' randarg1 p値 ' randarg2 試行回数 ' ・ポアソン分布(distribution=5) ' randarg1 λ値 ' ・パターン分布(distribution=6) ' randarg1 値の下限 ' randarg2 値の上限 ' randarg3 ステップ ' randarg4 数値の繰り返し回数 ' randarg5 数列の繰り返し回数 ' ・離散確率分布(distribution=7) ' randarg1 値と確率の入力範囲 ※セル参照で指定 ' ' ※このマクロを利用するには、Excelインストールのオプションで ' アドイン:分析ツールをインストールしておく必要があります。 ' Option Explicit Sub Macro1() Dim strfile As String Dim ps As String Dim strOutput As String Dim blnResult '分析ツール(VBA関数)アドインを新規登録し、組み込む ps = Application.PathSeparator ' Excel98(Mac)対策 strfile = Application.LibraryPath & _ ps & "Analysis" & ps & "ATPVBAEN.XLA" AddIns.Add(strfile).Installed = True Worksheets("Sheet1").Activate '出力先となる範囲をクリア ※出力エリア strOutput = "A2:G" & Range("A1").SpecialCells(xlCellTypeLastCell).Row Range(strOutput).ClearContents '「乱数発生」ダイアログを表示する '/* 均一分布 */ Application.Run "ATPVBAEN.XLA!RandomQ", _ ActiveSheet.Range("$A$2"), 1, 20, 1 ' ActiveSheet.Range ("$A$2"), 1, 20, 1, ,1,10 '/* 正規分布 */ Application.Run "ATPVBAEN.XLA!RandomQ", _ ActiveSheet.Range("$B$2"), 1, 20, 2 ' ActiveSheet.Range("$B$2"), 1, 20, 2, , 0, 1 '/* ベルヌーイ分布 */ Application.Run "ATPVBAEN.XLA!RandomQ", _ ActiveSheet.Range("$C$2"), 1, 20, 3 ' ActiveSheet.Range("$C$2"), 1, 20, 3, , 0.2 '/* 二項分布 */ Application.Run "ATPVBAEN.XLA!RandomQ", _ ActiveSheet.Range("$D$2"), 1, 20, 4 ' ActiveSheet.Range ("$D$2"), 1, 20, 4, , 0.3, 20 '/* ポアソン分布 */ Application.Run "ATPVBAEN.XLA!RandomQ", _ ActiveSheet.Range("$E$2"), 1, 20, 5 ' ActiveSheet.Range ("$E$2"), 1, 20, 5, , 50 '/* パターン分布 */ Application.Run "ATPVBAEN.XLA!RandomQ", _ ActiveSheet.Range("$F$2"), 1, 20, 6 ' ActiveSheet.Range ("$F$2"), 1, 20, 6, , 1, 100, 5, 3, 2 '/* 離散確率分布 */ Application.Run "ATPVBAEN.XLA!RandomQ", _ ActiveSheet.Range("$G$2"), 1, 20, 7 ' ActiveSheet.Range ("$G$2"), 1, 20, 7, , ActiveSheet.Range("$H$2:$I$11") End Sub Private Sub dbRandom_Disp() Dim soutput As String 'ダイアログ定義の値を調べる With Workbooks("Procdb.xla").Sheets("Res") Debug.Print "/* dbRandom_" & .Range("dbRandom_CurrDistDBName") & " */" Debug.Print "dbRandom_RandVar := " & .Range("dbRandom_RandVar") Debug.Print "dbRandom_RandNum := " & .Range("dbRandom_RandNum") Debug.Print "dbRandom_And := " & .Range("dbRandom_And") Debug.Print "dbRandom_Between := " & .Range("dbRandom_Between") Debug.Print "dbRandom_From := " & .Range("dbRandom_From") Debug.Print "dbRandom_InRange := " & .Range("dbRandom_InRange") Debug.Print "dbRandom_InSteps := " & .Range("dbRandom_InSteps") Debug.Print "dbRandom_Lamda := " & .Range("dbRandom_Lamda") Debug.Print "dbRandom_Mean := " & .Range("dbRandom_Mean") Debug.Print "dbRandom_OutOption := " & .Range("dbRandom_OutOption") Debug.Print "dbRandom_PlyName := " & .Range("dbRandom_PlyName") Debug.Print "dbRandom_pVal := " & .Range("dbRandom_pVal") Debug.Print "dbRandom_RandDistOpt := " & .Range("dbRandom_RandDistOpt") Debug.Print "dbRandom_RandSeed := " & .Range("dbRandom_RandSeed") Debug.Print "dbRandom_RangeRef := " & .Range("dbRandom_RangeRef") Debug.Print "dbRandom_RepNum := " & .Range("dbRandom_RepNum") Debug.Print "dbRandom_RepSeq := " & .Range("dbRandom_RepSeq") Debug.Print "dbRandom_StdDev := " & .Range("dbRandom_StdDev") Debug.Print "dbRandom_To := " & .Range("dbRandom_To") Debug.Print "dbRandom_Trials := " & .Range("dbRandom_Trials") End With End Sub