上手く重複チェックするには?


バロシュ  2007-03-01 06:59:43  No: 135583

度々失礼します。
現在テキストボックスの内容をスプレッドに挿入、ということを
行おうとしているのですが、その際すでにある情報と書き込もうと
している情報が重複していないかチェックを行っています。
それで実際

Call chkRep
    
If b >= 1 Then
    Exit Sub
End If
    
With spd
    .Row = .ActiveRow
    .MaxRows = .MaxRows + 1
    .Action = 7
End With
    
For k = 1 To 5
    With spd
        .Col = k
        .Row = .ActiveRow
        .Text = txt(k)
    End With
Next

Public Sub chkRep()
Dim a As Integer
Dim b As Integer

b = 0
For a = 1 To spd.MaxRows
  With spd
    .Row = a
    .Col = 1
    If txt(1) = .Text Then
        MsgBox "ダメ"
        b = b + 1
    End If
  End With
  With spd
    .Row = a
    .Col = 2
    If txt(2) = .Text Then
        MsgBox "ダメ"
        b = b + 1
    End If
  End With
Next
End Sub

というのを作成し、重複があればbに+1することによって
bの値を条件にして、書き込み可否を判断しようとしたのですが
bの値が上手く条件判断のところに渡ってくれません。
どうすればちゃんとbの値を渡してやることが出来るでしょうか?
もしくは他に良い方法はあるでしょうか?

よろしくご教示願います。


大吉末吉  2007-03-01 19:33:32  No: 135584

> Call chkRep
・・・
> Public Sub chkRep()
> Dim b As Integer
コレでは、参照できません。変数の参照可能な範囲(スコープ)ついては、
VBのヘルプの「変数の適用範囲」を参照ください。

「Visual Basic ドキュメント」
  「Visual Basic の使用方法」
    「プログラミングガイド」
      「プログラミングの基礎」
        「変数、定数、およびデータ型」

こういう場合は、プロシージャの引数とするか、関数にして戻り値にしてください。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加