Excel VBA質問箱 IV

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

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


25900 / 76732 ←次へ | 前へ→

【56169】Re:Index と Join の使い方
発言  n  - 08/6/6(金) 19:11 -

引用なし
パスワード
   こんにちは。
私もkanabunさんと同意見で、Worksheet_Changeイベントを使うのなら、
最初に対象範囲をチェックしたほうが良いと思います。

以下、あまり良い例ではないかもしれませんが、一案として

Option Explicit

Const j As Long = 9
Dim x(1 To j) As String

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim v As Variant
  Dim n As Long
  Dim i As Long
  
  With Range("B2").Resize(j, j)
    If Intersect(Target, .Cells) Is Nothing Then Exit Sub
    n = Target.Row - 1
    x(n) = Join(Application.Index(.Value, n))
    If WorksheetFunction.CountBlank(.Cells) > 0 Then Exit Sub
    v = Sheet2.Range("B2").Resize(j, j).Value
    For i = 1 To j
      If x(i) <> Join(Application.Index(v, i, 0)) Then Exit For
    Next
  End With
  If i = j + 1 Then
    Range("A1").Select
    With Me.TextBoxes.Add(216, 175.5, 216, 123)
      .Text = "出来上がり"
      DoEvents
      Application.Wait Now + TimeValue("0:00:02")
      .Delete
    End With
  End If
End Sub

今回のような例示なら、やはりDataObjectを使って、
文字列全体でまとめてチェックすれば良いような気もしますね。

データ数が少ないなら、お遊びで
MsgBox Evaluate("AND(Sheet1!B2:J10=Sheet2!B2:J10)")
0 hits

【56162】Index と Join の使い方 Abebobo 08/6/6(金) 17:07 質問
【56164】Re:Index と Join の使い方 kanabun 08/6/6(金) 17:57 発言
【56165】Re:Index と Join の使い方 kanabun 08/6/6(金) 18:05 発言
【56168】Re:Index と Join の使い方 Abebobo 08/6/6(金) 18:42 お礼
【56169】Re:Index と Join の使い方 n 08/6/6(金) 19:11 発言
【56170】Re:Index と Join の使い方 kanabun 08/6/6(金) 22:59 発言
【56177】Re:Index と Join の使い方 Abebobo 08/6/7(土) 13:09 お礼
【56219】Re:Index と Join の使い方 Abebobo 08/6/9(月) 10:16 お礼
【56220】Re:Index と Join の使い方 kanabun 08/6/9(月) 11:06 発言
【56222】Re:Index と Join の使い方 Abebobo 08/6/9(月) 11:58 お礼
【56227】Re:Index と Join の使い方 kanabun 08/6/9(月) 16:23 発言
【56228】Re:Index と Join の使い方 Abebobo 08/6/9(月) 17:08 お礼

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