Excel VBAで数値の範囲の入力範囲を設定する方法

こんにちは!大阪市を拠点に活動している『縁紡ぐ』の稲垣です。
SWELLを使ったホームページ制作や、Excel、ACCESS、RPAなどのシステム開発を行っています。
また、Excel、Word、Outlookの研修や、情報セキュリティ研修も行っています。身近なITの相談相手になりたいと思っています。
お気軽にお問い合わせください。
目次
はじめに
Excel VBAを使って数値の入力範囲を制限する方法を紹介します。初心者でも簡単に実践できる内容ですので、ぜひ最後までお読みください。
数値の範囲を設定する理由


数値の範囲を設定することで、誤ったデータ入力を防ぎ、データの整合性を保つことができます。特に、大量のデータを扱う場合は非常に重要です。
入力範囲を設定するコード
以下のコードを使って、特定のセルに数値の範囲を設定します。
Sub SetInputRange()
Dim rng As Range
' シート名を確認し、必要に応じて変更
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10")
' 入力規則を設定
With rng.Validation
.Delete ' 既存の入力規則を削除
.Add Type:=xlValidateWholeNumber, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:=1, _
Formula2:=10 ' 1から10の範囲
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
End Sub

すでに値が入力されているセルの値は、入力規則にあっていない場合でもクリアされません。クリアの仕方は、後に紹介しています。
コードの解説
このコードは、シート1のセルA1に1から10の範囲で数値を入力するための入力規則を設定します。具体的な手順は以下の通りです。
- .Delete: 既存の入力規則を削除します。
- .Add: 新しい入力規則を追加します。
- Type: 入力の種類を指定します(この場合は整数)。
- Formula1とFormula2: 範囲の下限と上限を設定します。
入力規則に合っていないセルの値をクリアするコード
以下のコードを追加することで、指定した範囲内のセルが入力規則に合わない場合、その値をクリアすることができます。
Sub ClearInvalidEntries()
Dim rng As Range
Dim cell As Range
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A10") ' チェックする範囲を指定
For Each cell In rng
If Not cell.Validation.Value Then
cell.ClearContents ' 入力規則に合わない場合、セルの値をクリア
End If
Next cell
End Sub

まとめ
このように、Excel VBAを使用して数値の範囲を設定し、さらに入力規則に合っていない値をクリアする方法を紹介しました。これにより、データの整合性を一層強化できます。VBAを使って業務効率化を進めてくださいね!
記事を書いた人

稲垣
- Excel、ACCESSでのシステム開発が得意
- ITスキルを共有し実践的に学びながら成長する人を見るのが幸せ
- 自家焙煎するほどのコーヒー好き
- 使用言語 VBA、Python、Javascript、Java、HTML、CSS etc.
- 保有資格 Kintoneアソシエイト、日商簿記検定2級、マンション管理士、管理業務主任者、情報セキュリティマネジメント、ExcelVBA etc.
- 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
- お客様にとって本当に良いことかを第一に考える人
コメント