プログラマの日記

Javaプログラマの苦悩の日々

VBAでセルの入力チェック

ExcelVBAを使ったセルの入力チェック

最近仕事で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で値だけ貼り付けしかできないようにしたいのですが、うまくいかず・・・

貼り付け後書式を変更した場合、今度は元に戻すができなくなってしまいます。

貼り付け時に値だけ貼り付けに強制的にし、なおかつ元に戻すこともできるんですかねぇ~

 

誰か知ってれば教えてください(笑)

 

以上