« 『Excel』の『vlookup』だと検索対象の左側が表示対象にできない!ので出来るのを作ってみた。 | トップページ | 『Excel』の『データの入力制限』の設定を『vba』でやった時のトラップ!!! »

2018年6月11日 (月)

『Excel』の『データの入力制限』の設定って面倒なので『vba』でやってみる!

『Excel』で色々な入力欄を用意する場合、想定外の文字が入力される場合がある。

そんな時に想定した文字列しか入れられないようにする処理を『データの入力規制』。

これは、プルダウンから選択できるようにもできる優れもの。

設定は、以下の通り。

0001

1.設定するセルを選択。

2.『データの入力制限』を選択。

3.表示された『データの入力制限』ダイアログの『設定』タブを選択。

『入力値の種類』を『リスト』を選択。

『元の値』に『1,2,3,4,5』と入力。

『OK』をクリック。

これで、他の文字が入らないセルができる。

こんな感じ。

002

一つなら良いが、個別のリストを持つ『データの入力規制』を
100個設定するとなると…

これは、なかなか大変…。

いや、マジで…。(汗)

やりましたので…。(泣)

なので、マクロで何とかしようと調べたら結構あった。

上記の設定をマクロで書くとこんな感じ。

'---------------------------------------
Sub test()
    With Range("A1").Validation
        .Delete
        .Add Type:=xlValidateList, _
             Operator:=xlEqual, _
             Formula1:="1,2,3,4,5"
    End With
End Sub

これを利用すれば、簡単に登録できる!

何と素晴らしい!

で、関数化するとこんな感じ。

これなら100ぐらいなんでもない!

----------------------------------------
Sub test()
    DataEntryRestriction "A1", "1,2,3,4,5"
End Sub

'---------------------------------------
' セルに『データの入力規制』を登録
' 登録する場所
' 登録するリスト
' 使い方:DataEntryRestriction "A1", "1,2,3,4,5"
Public Function DataEntryRestriction(r As String, list As String)
    With Range(r).Validation
        .Delete
        .Add Type:=xlValidateList, _
             Operator:=xlEqual, _
             Formula1:=list
    End With
End Function
----------------------------------------

もし、物凄く複雑なリストでもループで回せば大丈夫だろう!

だが、この方法には、落とし穴があった…。

つづく!(笑)

|

« 『Excel』の『vlookup』だと検索対象の左側が表示対象にできない!ので出来るのを作ってみた。 | トップページ | 『Excel』の『データの入力制限』の設定を『vba』でやった時のトラップ!!! »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 『Excel』の『データの入力制限』の設定って面倒なので『vba』でやってみる!:

« 『Excel』の『vlookup』だと検索対象の左側が表示対象にできない!ので出来るのを作ってみた。 | トップページ | 『Excel』の『データの入力制限』の設定を『vba』でやった時のトラップ!!! »