Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


49444 / 76732 ←次へ | 前へ→

【32198】Re:教えて下さい・・・
回答  やっちん  - 05/12/8(木) 22:07 -

引用なし
パスワード
   ▼とも☆ さん:
こんにちは。
1つの回答として提示します。
分かり易いように変数を日本語にしています。

Sub 条件付確率のVBA()
  Call 点検(0.05)
  Call 点検(0.1)
  Call 点検(0.15)
  Call 点検(0.2)
  Call 点検(0.25)
End Sub

Sub 点検(ByVal 不合格率 As Double)
  Const 総製品数 = 500
  Const 不良品番号初期値 = -5
  Dim 不良品番号 As Long
  Dim 再点検回数 As Long
  Dim 製品番号 As Long

'変数初期化
  不良品番号 = 不良品番号初期値
  再点検回数 = 0

'乱数初期化
  Randomize

  For 製品番号 = 1 To 総製品数
    If Rnd() < 不合格率 Then
      If 製品番号 - 不良品番号 <= 5 Then
        再点検回数 = 再点検回数 + 1
        不良品番号 = 不良品番号初期値
      Else
        不良品番号 = 製品番号
      End If
    End If
  Next 製品番号

  MsgBox "不合格の確率:" & 不合格率 & Chr(10) & _
      "再点検の回数:" & 再点検回数 & Chr(10) & _
      "再点検の確率:" & (再点検回数 / 総製品数)
End Sub


以下は処理の説明です。
1.「条件付確率のVBA」を実行します。
2.サブモジュールの「点検」に「不合格率」を与えて点検の処理をさせます。
3.再点検をするかどうかは、「製品番号」と「不良品番号」との差が5以下かどうかで判断します。
  その為に、不良品が出たらその「製品番号」を「不良品番号」に保存しています。
4.再点検になった場合、「不良品番号」を初期化しています。
 (点検したんだから次の不良品は1個目として数え始めていいでしょう)
  初期値がなぜ「−5」なのかは御自分で考えてみてください。

再点検の確率を(再点検回数 / 総製品数)としていますが
(再点検回数 / 不良品数)かな?とも思います。
もしそうだとしたら改造してみてください。

プログラムは動かして出てきた結果だけを見てもなかなかわかりません。
途中で変数の中身がどうなっているのかを確認していってください。
「Sub 条件付確率のVBA()」から最初の「End Sub」の間の行にカーソルを持っていって
「F8」キーを押すと、押すごとに1行ずつVBAが実行されます。次にまた押すまでは止まってます。
止まっている状態で変数の上にマウスカーソルを持っていくと
その時の変数の中身が表示されます。
途中でやめたくなったら「F5」キーを押すと残りの処理が止まらずに実行されます。

1 hits

【32098】教えて下さい・・・ とも☆ 05/12/6(火) 14:40 質問
【32100】Re:教えて下さい・・・ やっちん 05/12/6(火) 15:05 発言
【32113】Re:教えて下さい・・・ とも☆ 05/12/6(火) 16:04 質問
【32124】Re:教えて下さい・・・ やっちん 05/12/6(火) 18:59 発言
【32154】Re:教えて下さい・・・ とも☆ 05/12/7(水) 15:03 質問
【32155】Re:教えて下さい・・・ やっちん 05/12/7(水) 15:16 発言
【32175】Re:教えて下さい・・・ とも☆ 05/12/8(木) 10:02 質問
【32177】Re:教えて下さい・・・ とも☆ 05/12/8(木) 10:15 質問
【32179】Re:教えて下さい・・・ Jaka 05/12/8(木) 10:33 発言
【32402】Re:教えて下さい・・・ とも☆ 05/12/14(水) 10:01 質問
【32181】Re:教えて下さい・・・ やっちん 05/12/8(木) 12:35 発言
【32405】Re:教えて下さい・・・ とも☆ 05/12/14(水) 10:10 質問
【32406】Re:教えて下さい・・・ やっちん 05/12/14(水) 10:16 発言
【32410】Re:教えて下さい・・・ とも☆ 05/12/14(水) 11:02 お礼
【32198】Re:教えて下さい・・・ やっちん 05/12/8(木) 22:07 回答
【32407】Re:教えて下さい・・・ とも☆ 05/12/14(水) 10:31 質問
【32408】Re:教えて下さい・・・ やっちん 05/12/14(水) 10:48 発言
【32411】Re:教えて下さい・・・ とも☆ 05/12/14(水) 11:05 質問
【32413】Re:教えて下さい・・・ やっちん 05/12/14(水) 11:50 回答
【32422】Re:教えて下さい・・・ とも☆ 05/12/14(水) 16:46 お礼
【32437】Re:教えて下さい・・・ やっちん 05/12/14(水) 20:37 発言
【32465】Re:教えて下さい・・・ とも☆ 05/12/15(木) 16:50 質問
【32468】Re:教えて下さい・・・ やっちん 05/12/15(木) 17:01 発言

49444 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free