Excel VBA質問箱 IV

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

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


60116 / 76736 ←次へ | 前へ→

【21269】Re:入力ミスの防止について
回答  Jaka  - 05/1/18(火) 10:12 -

引用なし
パスワード
   >If Target.Cells.Count <> 1 Then
>  If Target.MergeCells = False Then
>   Exit Sub
>  End If
>End If
>の意味がよくわかりません。
>なぜ必要なのでしょうか?
必要なのでしょうか?ってA1:A3までセル結合してあるって事ですから...。
新規シートに下記コードを書いて、

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  MsgBox Target.Value
End Sub

結合セルに何か入力してください。
エラーになります。

また、セルを複数選択して同時入力させて見てください。
エラーになります。

※同時入力
例えば、複数のセルを選択後に「1」入力後、Ctrl + Ent で同時入力できます。

それで、結合セルは、複数セル選択と同じ扱いになるみたいでしたので、複数セルの同時入力は全て拒否するけど結合セルは、判定させるようにしました。

厳密に言うと、もっと単純でよかったのかもしれませんが、後で操作性の悪さに気づいて、これこれこうしたいですと、細かく追加されるのも嫌なので、独断でこれぐらいはあった方が良いかも程度に追加しました。

操作方法の詳細が解りませんけど、更に細かい使い方に対応させようとすると、もっとコードが更に複雑になります。

因みに複数同時入力が出来ないように作ってはありますが、複数のセルを選択したとき入力セルが左、もしくは上にないと反応しません。
結合セルが入力セルであるためにこうなってしまったんですが....。

チビッと修正?版

Private Sub Worksheet_Change(ByVal Target As Range)
  'MsgBox Target.Areas.Count
  If Target.Column = 1 And Target.Row <= 5 Or _
    Target.Column = 4 And Target.Row >= 3 And Target.Row <= 8 Or _
    Target.Column = 6 And Target.Row >= 5 And Target.Row <= 6 Then
    If Not (Target.Count > 1 And Target.MergeCells = False Or Target.Areas.Count > 1) Then
     If Val(Target.Cells(1).Value) >= 1 And Val(Target.Cells(1).Value) <= 4 Or _
      Target.Cells(1).Value = "" Then
      Exit Sub
     End If
    End If
    MsgBox "NG"
    Application.EnableEvents = False
    Application.Undo
    Application.EnableEvents = True
  End If
End Sub

0 hits

【21236】入力ミスの防止について nori 05/1/17(月) 12:00 質問
【21237】Re:入力ミスの防止について Jaka 05/1/17(月) 12:29 回答
【21239】Re:入力ミスの防止について Jaka 05/1/17(月) 12:46 発言
【21241】Re:入力ミスの防止について Jaka 05/1/17(月) 13:15 回答
【21245】Re:入力ミスの防止について nori 05/1/17(月) 14:05 質問
【21248】Re:入力ミスの防止について Jaka 05/1/17(月) 16:49 回答
【21250】Re:入力ミスの防止について Jaka 05/1/17(月) 17:18 回答
【21253】Re:入力ミスの防止について nori 05/1/17(月) 17:53 質問
【21269】Re:入力ミスの防止について Jaka 05/1/18(火) 10:12 回答
【21277】Re:入力ミスの防止について nori 05/1/18(火) 11:57 お礼

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