VBAでセルの入力チェック
ExcelでVBAを使ったセルの入力チェック
最近仕事でVBAを使うことが多いので、そのことを書きます。
VBAを使って入力チェックなどを行うのですが、VBAはあまり詳しくなく四苦八苦しながらなんとか完成しました。
まず、値が変わった時に入力チェックを行うので、changeイベントに処理を書いていく感じです。
それで、項目ごとのチェック定義を別シートに書くっていう感じです。
あまり詳しく書きませんが
Private Sub Worksheet_Change(ByVal Target As Range)
For Each obj In Target
cell = obj.Value
If Len(cell) = 10 Then
MsgBox "10桁以内で入力してください。"
End If
Next obj
End Sub
みたいな感じです。
ループにすれば貼り付けで複数変わっても全ての項目が入力チェックを行えます。
ただ、困ったのが手でコピペされたときに書式も変わってしまうので、
なんとかVBAで値だけ貼り付けしかできないようにしたいのですが、うまくいかず・・・
貼り付け後書式を変更した場合、今度は元に戻すができなくなってしまいます。
貼り付け時に値だけ貼り付けに強制的にし、なおかつ元に戻すこともできるんですかねぇ~
誰か知ってれば教えてください(笑)
以上