【VBA】 서식 설정과 입력 규칙 설정을 실시한다

날짜만 입력할 수 있도록 한다



지정한 범위에 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

【실행 결과】



와타시 흐름 조건



이번과 같은 매크로는 With 사용하는 분도 많이 있지요?
와타시는 With 사용하지 않는 파입니다!

나중에 언제나 Range의 지정은
Set TargetRange = Master.Range(Master.Cells(2, DateCol), Master.Cells(LastRow, DateCol))

이렇게하지만 길다.
어느 셀에서 어느 셀까지의 것이 이해하기 쉽고…

이해하기 쉽고 좋은 지정 방법이 많이 있다고 생각합니다.
여러분은 어떻습니까?

좋은 웹페이지 즐겨찾기