Excel VBA質問箱 IV

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

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


4681 / 13646 ツリー ←次へ | 前へ→

【55217】このプログラムのダメなところ教えてくでさい ここ 08/4/22(火) 21:44 質問[未読]
【55219】Re:このプログラムのダメなところ教えてく... ponpon 08/4/22(火) 22:07 発言[未読]
【55220】Re:このプログラムのダメなところ教えてく... ここ 08/4/22(火) 22:14 お礼[未読]
【55223】Re:このプログラムのダメなところ教えてく... neptune 08/4/22(火) 22:23 発言[未読]
【55233】Re:このプログラムのダメなところ教えてく... VBWASURETA 08/4/23(水) 10:07 回答[未読]
【55246】Re:このプログラムのダメなところ教えてく... とおりすがり 08/4/24(木) 8:40 発言[未読]

【55217】このプログラムのダメなところ教えてくで...
質問  ここ  - 08/4/22(火) 21:44 -

引用なし
パスワード
   Private Sub CommandButton1_Click()
  
  Dim rg As Range
    
    a = 0
    b = 0

  For Each rg In Range("AL:AL")
    If InStr(rg.Value, "完了") > 0 Then
      rg.Select
      a = a + 1
    ElseIf InStr(rg.Value, "未完") > 0 Then
      rg.Select
      b = b + 1 
    End If
  Next

  Msgbox ( a /( a + b ))

End Sub

【55219】Re:このプログラムのダメなところ教えて...
発言  ponpon  - 08/4/22(火) 22:07 -

引用なし
パスワード
   ▼ここ さん:
ダメかどうかは、わかりませんが、気づいたことだけ。

>Private Sub CommandButton1_Click()
>  
>  Dim rg As Range
  'a,bの変数の宣言がない
    
>    a = 0
>    b = 0
>
>  For Each rg In Range("AL:AL")

    'AL列全部にデータがあるのかな?
    'データがなければ無駄かも。

>    If InStr(rg.Value, "完了") > 0 Then
>      rg.Select
       ’rgをselectする理由は??   

>      a = a + 1
>    ElseIf InStr(rg.Value, "未完") > 0 Then
>      rg.Select
       ’rgをselectする理由は??   

>      b = b + 1 
>    End If
>  Next
>
>  Msgbox ( a /( a + b ))
      ’始めと終わりの()がなくても?
>
>End Sub

【55220】Re:このプログラムのダメなところ教えて...
お礼  ここ  - 08/4/22(火) 22:14 -

引用なし
パスワード
   ありがとうございました。

【55223】Re:このプログラムのダメなところ教えて...
発言  neptune  - 08/4/22(火) 22:23 -

引用なし
パスワード
   ▼ここ さん:
こんにちは

ponponさんのご指摘 +

>  For Each rg In Range("AL:AL")
Range("AL:AL")
がどのシートのものかの指定がない。プロシージャが実行されたときの
Activeなシートのrangeになってしまう。必ずRange("AL:AL")が
Activeという保障があればその限りでない。

もし、a,bがモジュールレベルの変数なら、プロシージャレベルの変数
で済むように工夫すべき。出来るはず。・・・バグの元。

#質問は現在の不具合を書くべき、希望通りに問題なく動いていればそれは
#それで問題ないプログラムという考え方もあるし、問題を感じて判らないから
#質問しているはずだろうから遠回りです。

【55233】Re:このプログラムのダメなところ教えて...
回答  VBWASURETA  - 08/4/23(水) 10:07 -

引用なし
パスワード
   皆さんおはようございます。

質問の方法に色々指摘されているようですが、
jakaさんと同じですが、
はっきり言ってソースだけかかれても何が問題か特定は難しいです。
それに全てソースを書いているわけではないですし。
他で問題となっていたら回答できるわけないですよね?

因みにぱっと見ここで問題となりそうなのはゼロ除算でしょうね。
aとbは最初にゼロ初期化してますが、かならずカウントされるとは
限りませんよね?
どのプログラムでもそうですが、ゼロで除算することは
エラーに繋がるため、条件を作ります。

【55246】Re:このプログラムのダメなところ教えて...
発言  とおりすがり  - 08/4/24(木) 8:40 -

引用なし
パスワード
   回答者への参考として。

このプログラムのだめなところ教えてください
http://www.happy2-island.com/bbs/bbs.cgi?mode=view&no=937

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