2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【VBA】書式設定と入力規則設定を施す

Last updated at Posted at 2020-09-07

日付しか入力出来ないようにする

指定した範囲に__yyyy/mm/dd__の書式設定と、__日付以外入力出来ない入力規則__をつけます。

あんまり繰り返し作業することではないかもしれないのですが、以前、複数のシートに入力規則をつけなければならずめんどくさかったのでマクロで設定しました。
またやる時のために書いとこうと思いました。

入力規則の設定内容

・2019/01/01以降の日付のみ入力可能
・セルを選択したら入力時メッセージを表示する
・2019/01/01以降の日付以外を入力したらエラーメッセージを表示する
・日本語入力はオフにする

Sub FormatSetting() '書式設定と入力規則設定を施す
    Dim DateCol As Long 'IDの列番号を格納する変数
    DateCol = WorksheetFunction.Match("登録日", Master.Rows(1), 0) 'Match関数で列数格納
    Dim LastRow As Long '最大行数を格納する変数
    LastRow = Master.Rows.Count '最大行数格納
    Dim TargetRange As Range '書式設定する範囲を格納する変数
    '書式設定する範囲を格納
    Set TargetRange = Master.Range(Master.Cells(2, DateCol), Master.Cells(LastRow, DateCol))
    
    TargetRange.NumberFormatLocal = "yyyy/mm/dd" '書式設定
    TargetRange.Validation.Delete 'すでに設定されている入力規則を削除
    '2019/01/01以降の日付のみ入力許可
    TargetRange.Validation.Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:=xlGreaterEqual, Formula1:="2019/01/01"
    TargetRange.Validation.IgnoreBlank = True '空白を許可
    TargetRange.Validation.InputTitle = "入力規則" '入力時メッセージタイトル
    TargetRange.Validation.InputMessage = "yyyy/mm/dd形式で入力してください。" '入力時メッセージ文
    TargetRange.Validation.ErrorTitle = "エラー!" 'エラーメッセージタイトル
    TargetRange.Validation.ErrorMessage = "2019/01/01以降の日付をyyyy/mm/dd形式で入力してください。" 'エラーメッセージ文
    TargetRange.Validation.IMEMode = xlIMEModeOff '日本語入力をオフ
    
    MsgBox "書式設定と入力規則設定が完了しました!"
End Sub

【実行結果】
image.png
image.png

ワタシ流こだわり

今回のようなマクロはWith使う方もたくさんいますよね?
ワタシはWith使わない派です!

あとワタシいつもRangeの指定は

Set TargetRange = Master.Range(Master.Cells(2, DateCol), Master.Cells(LastRow, DateCol))

こうするんですけど、長いですよね:joy:
どのセルからどのセルまでってのが理解しやすくて…

分かりやすくていい指定のしかたたくさんあると思うんですが
みなさんどうしてますか?

2
0
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?