Sample Site

入力規則その1

データを入力する場合、入力をいかに楽にするかと言う事と一方でいかにおかしなデータを入力しないようにするかと言う、二つの相反する事が重要になります。 その点を、見事に解決してくれるのが「入力規則」(validation rule)です。
入力規則の主な役割は、データを選択入力にして入力を楽にかつ確実にする事と、一方、入力されたデータを一定の規則に基づいて判別して正常なデータのみを受付ける事になります。
単純な入力規則をセルに適用するには、なにもvbaを使う必要もありませんが、選択階層が複雑になってくるとどうしても避けては通れません。


ここで用いるのはValidationオブジェクト関連です。
Validationオブジェクト情報を取得するには 、RangeオブジェクトのValidationプロパティを使用します。
Addメソッドを使用して、その規則を一定の範囲に追加し、新しいValidationオブジェクトを作成します。

(公式情報)
https://docs.microsoft.com/ja-jp/office/vba/api/excel.validation

このページでは、入力規則の中でもよく使われる選択式の入力規則について説明します。 選択式入力の場合は、参照元の情報をどの様に記述するかで様々な方法があります。
具体的には、基本的なコードの中の「Formula1」をどの様に定義するかで 主に、
1)カンマ区切りの文字列
2)名前
3)範囲
------------------------------------------------------------------------
With Range("a3:a13").Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlEqual, Formula1:="*この部分*"
End With
------------------------------------------------------------------------
の3とおりがあります。

カンマ区切り文字列による入力規則

この例は、「まぐろ,たい,いわし,さんま,さば,ふな」の文字列から選択する様な設定です。
カンマ区切り文字列を用いる方法は参照元が比較的大規模なマトリックス表の様な場合に、対象範囲が具体的に内容がつかめてコード化(自動でカンマ区切り文字列にする)しやすいと思います。(入力規則その2で例が出てきます)
●基本的なコード例(名前の利用)適用範囲:Range("a3:a13") 文字列:まぐろ,たい,いわし,さんま,さば,ふな
With Range("a3:a13").Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlEqual, Formula1:="まぐろ,たい,いわし,さんま,さば,ふな" '
End With

カンマ区切り文字列による入力規則

入力規則の解除

文字列による入力規制(ダウンロード)

名前による入力規則

この例は、あらかじめ参照範囲の名前定義をしています。
excelメニュー(「数式」-->「名前の定義」で名前:さかな 範囲:=Sheet1!R3C8:R8C8
●基本的なコード例(名前の利用)適用範囲:Range("a3:a13") 名前:さかな
With Range("a3:a13").Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlEqual, Formula1:="=さかな" '
End With

名前による入力規則


名前による入力規制(ダウンロード)

範囲による入力規則

この場合は、参照元を=Sheet1!R3C8:R8C8の様な範囲で指定します。
範囲の設定方法は相対参照と絶対参照("=$A$1:$A$10"の様な記述)がありますが、基本的には絶対参照で行います。(ただし当方の環境では通常の絶対参照記述ではエラーになったのでR1C1形式表記にしてあります)
●基本的なコード例(範囲の利用)適用範囲:Range("a3:a13") 範囲:=Sheet1!R3C8:R8C8
With Range("a3:a13").Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlEqual, Formula1:="=Sheet1!R3C8:R8C8" '
End With

以下、そのコードです。

範囲による入力規制(ダウンロード)

以上の操作を踏まえて、まとめたものを下記のファイルにしています。

選択式入力規則(まとめ)
以上のTIPSをまとめたファイルです。お時間の無い方におまとめ編です。
3とおりの設定方法を選んで、コードの違いを見られます。



Sample Site