Excel VBA質問箱 IV

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

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


6937 / 13644 ツリー ←次へ | 前へ→

【42210】Changeイベントでのエラー回避 boon 06/9/4(月) 12:24 質問[未読]
【42213】Re:Changeイベントでのエラー回避 Blue 06/9/4(月) 12:42 回答[未読]
【42216】Re:Changeイベントでのエラー回避 boon 06/9/4(月) 12:51 お礼[未読]
【42217】Re:Changeイベントでのエラー回避 Jaka 06/9/4(月) 13:09 発言[未読]
【42230】Re:Changeイベントでのエラー回避 boon 06/9/4(月) 17:02 質問[未読]
【42231】Re:Changeイベントでのエラー回避 Jaka 06/9/4(月) 17:16 発言[未読]

【42210】Changeイベントでのエラー回避
質問  boon  - 06/9/4(月) 12:24 -

引用なし
パスワード
   セルの値が条件と一致した場合に処理をさせようとして
このようにしたのですが、

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Value = "TEST" Then
    MsgBox "OK"
  End If
End Sub

セルが複数選択された状態でデリートや削除などを行なうと
「型が一致しません。」のエラーがでます。
セルが複数選択された状態を判定したいのですが、
どのように知ることができますか?
よろしくお願いします。

【42213】Re:Changeイベントでのエラー回避
回答  Blue  - 06/9/4(月) 12:42 -

引用なし
パスワード
   Target.Countを使ってください。

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count = 1 Then
    If Target.Value = "TEST" Then
      MsgBox "OK"
    End If
  End If
End Sub

【42216】Re:Changeイベントでのエラー回避
お礼  boon  - 06/9/4(月) 12:51 -

引用なし
パスワード
   ▼Blue さん:
>Target.Countを使ってください。
>
>Private Sub Worksheet_Change(ByVal Target As Range)
>  If Target.Count = 1 Then
>    If Target.Value = "TEST" Then
>      MsgBox "OK"
>    End If
>  End If
>End Sub

ありがとうございます。助かりました。

【42217】Re:Changeイベントでのエラー回避
発言  Jaka  - 06/9/4(月) 13:09 -

引用なし
パスワード
   コピペのことを考えなくていいのなら。

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Cells(1).Value = "TEST" Then
    MsgBox "OK"
  End If
End Sub

【42230】Re:Changeイベントでのエラー回避
質問  boon  - 06/9/4(月) 17:02 -

引用なし
パスワード
   ▼Jaka さん:
>コピペのことを考えなくていいのなら。
ご指摘の通りコピペが問題になってきました。

やりたいことを具体的に書くと、
1.A列とB列の同じ行に文字が入力されたら処理する
2.A列とB列の複数行にコピペで入力されたらその行数分処理する
最初に頂いたアドバイスを元に下記のようにしてみましたが、
2.をどのようにしたらいいか分かりません。
よろしくお願いします。

Private Sub Worksheet_Change(ByVal Target As Range)
  With Target
    If .Count = 1 Then
      Select Case .Column
        Case 1
          If .Value <> "" And .Offset(, 1).Value <> "" Then
            MsgBox "OK"
          End If
        Case 2
          If .Value <> "" And .Offset(, -1).Value <> "" Then
            MsgBox "OK"
          End If
      End Select
    ElseIf .Count > 1 Then
      'ここで処理??
    End If
  End With
End Sub

【42231】Re:Changeイベントでのエラー回避
発言  Jaka  - 06/9/4(月) 17:16 -

引用なし
パスワード
   回答できる状態じゃないけど、列は固定なのか世の変も書いて方がいいかも。
Intersectで何とかなりそうな気もします。

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