Attribute VB_Name = "Module1" '■ マクロ500連発<第2段> ' ' 分析ツールの「基本統計量」ダイアログを利用する ' ' Copyright(C) 2000 Sunago ' ' ※このマクロを利用するには、Excelインストールのオプションで ' アドイン:分析ツールを組み込んでおく必要があります。 Option Explicit Sub Macro1() Dim vntres Dim vntname Dim ps Worksheets("Sheet1").Activate ps = Application.PathSeparator ' Excel98(Mac)対策 On Error Resume Next vntname = Workbooks("Procdb.xla").Name On Error GoTo 0 If IsEmpty(vntname) Then '分析ツールのアドインが組み込む Workbooks.Open Application.LibraryPath & _ ps & "Analysis" & ps & "Procdb.xla" End If 'ダイアログの初期値を設定する With Workbooks("Procdb.xla").Sheets("Res") '入力範囲ボックス .Range("dbDescrip_InRange") = "A1:B6" 'データ方向(1:列、2:行) .Range("dbDescrip_RCSelect") = 2 '先頭行をラベルとして使用(True,False) ' True、False .Range("dbDescrip_LblChkBox") = True '出力先オプションボタン '1:出力先、2:新規又は次のワークシート、3:新規ブック) '/* 出力先ボックスを使う場合 */ .Range("dbDescrip_OutOption") = 1 .Range("dbDescrip_RangeRef") = "A8" '1:出力先ボックス .Range("dbDescrip_RangeInpFld") = 10 '※入力可に設定 .Range("dbDescrip_PlyInpFld") = 206 '※入力不可に設定 ' '/* 新規又は次のワークシートを使う場合 */ ' .Range("dbDescrip_OutOption") = 2 ' .Range("dbDescrip_PlyName") = "Sheet3" '2:新規ワークシートボックス ' .Range("dbDescrip_RangeInpFld") = 210 '※入力不可に設定 ' .Range("dbDescrip_PlyInpFld") = 6 '※入力可に設定 ' '/* 新規ブックを使う場合 */ ' .Range("dbDescrip_OutOption") = 3 ' .Range("dbDescrip_RangeInpFld") = 210 '※入力不可に設定 ' .Range("dbDescrip_PlyInpFld") = 206 '※入力不可に設定 '統計情報(True,False) .Range("dbDescrip_SumStatChkBox") = False '平均の信頼区間の出力(True,False) .Range("dbDescrip_ConfidenceChkBox") = True .Range("dbDescrip_Confidence") = 95 .Range("dbDescrip_ConfidenceInpFld") = 8 '※入力可に設定 ' .Range("dbDescrip_ConfidenceInpFld") = 208 '※入力不可に設定 'K番目に大きな値(True,False) .Range("dbDescrip_KLargeChkBox") = True .Range("dbDescrip_KLarge") = 3 .Range("dbDescrip_KLargeInpFld") = 7 '※入力可に設定 ' .Range("dbDescrip_KLargeInpFld") = 207 '※入力不可に設定 'K番目に小さな値(True,False) .Range("dbDescrip_KSmallChkBox") = True .Range("dbDescrip_KSmall") = 3 .Range("dbDescrip_KSmallInpFld") = 7 '※入力可に設定 ' .Range("dbDescrip_KLargeInpFld") = 207 '※入力不可に設定 'ダイアログボックス定義テーブル(Descrip)を表示する Do vntres = ShowDialog("'[Procdb.xla]RES'!dbDescrip") '出力先オプションボタンで出力先が選択された場合 If vntres = 13 Then .Range("dbDescrip_RangeInpFld") = 10 .Range("dbDescrip_PlyInpFld") = 206 '出力先オプションボタンで新規又は次のワークシートが選択された場合 ElseIf vntres = 14 Then .Range("dbDescrip_RangeInpFld") = 210 .Range("dbDescrip_PlyInpFld") = 6 '出力先オプションボタンで新規ブックが選択された場合 ElseIf vntres = 15 Then .Range("dbDescrip_RangeInpFld") = 210 .Range("dbDescrip_PlyInpFld") = 206 '平均の信頼区間の出力が選択された場合 ElseIf vntres = 19 Then If .Range("dbDescrip_ConfidenceInpFld") <> 8 Then .Range("dbDescrip_ConfidenceInpFld") = 8 Else .Range("dbDescrip_ConfidenceInpFld") = 208 End If 'K番目に大きな値が選択された場合 ElseIf vntres = 22 Then If .Range("dbDescrip_KLargeInpFld") <> 7 Then .Range("dbDescrip_KLargeInpFld") = 7 Else .Range("dbDescrip_KLargeInpFld") = 207 End If 'K番目に小さな値が選択された場合 ElseIf vntres = 24 Then If .Range("dbDescrip_KSmallInpFld") <> 7 Then .Range("dbDescrip_KSmallInpFld") = 7 Else .Range("dbDescrip_KSmallInpFld") = 207 End If End If Loop Until vntres = False Or vntres = 1 End With End Sub Function ShowDialog(arg As String) Dim srng 'Excel4マクロを用いて、ダイアログを表示する srng = "DIALOG.BOX(" & arg & ")" ShowDialog = Application.ExecuteExcel4Macro(srng) End Function