'========================================================================================= ' 089 誤入力値を受け入れないようにする '----------------------------------------------------------------------------------------- '【ヒント】 ' タイトル機能に関係するマクロは、UserForm1のコードにあります。 ' この標準モジュールのマクロは、おためし機能の動作用のコードです。 '========================================================================================= ' ◆標準モジュールのコード◆ '----------------------------------------------------------------------------------------- '----------------------------------------------------------------------------------------- Sub おためしマクロ() UserForm1.Show vbModeless 'ユーザーフォームをモードレスで表示する End Sub '----------------------------------------------------------------------------------------- Sub Auto_Close() Application.DisplayAlerts = False '閉じる際に確認メッセージを出さない ActiveWorkbook.Close '現在開いているブックを閉じる End Sub '----------------------------------------------------------------------------------------- '========================================================================================= ' ◆UserForm1のコード◆ '----------------------------------------------------------------------------------------- Option Explicit Dim 最小値 As Variant Dim 最大値 As Variant Dim エラーメッセージ As String '----------------------------------------------------------------------------------------- Private Sub OptionButton1_Click() Application.ScreenUpdating = False '画面を更新しない ActiveSheet.Unprotect 'シート保護を解除する Range("G9").Select '対象セルを選択する 最小値 = 1 '◆◆◆ 入力データの最小値 最大値 = 5 '◆◆◆ 入力データの最大値 入力規則を設定する '◆◆◆ ActiveSheet.Protect 'シート保護する Range("M15").Select 'カーソルを移動する End Sub '----------------------------------------------------------------------------------------- Private Sub OptionButton2_Click() Application.ScreenUpdating = False ActiveSheet.Unprotect Range("G9").Select 最小値 = 7 '◆◆◆ 最大値 = 8 '◆◆◆ 入力規則を設定する '◆◆◆ ActiveSheet.Protect Range("M15").Select End Sub '----------------------------------------------------------------------------------------- Private Sub OptionButton3_Click() Application.ScreenUpdating = False ActiveSheet.Unprotect Range("G9").Select 入力規則をすべてクリアする ActiveSheet.Protect Range("M15").Select End Sub '----------------------------------------------------------------------------------------- Private Sub UserForm_Deactivate() Unload Me End Sub '----------------------------------------------------------------------------------------- Private Sub 入力規則を設定する() '◆◆◆ エラーメッセージ = 最小値 & " から " & 最大値 & " までしか 入力できません" With Selection.Validation .Delete .Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:=最小値, Formula2:=最大値 .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "500連発 第2弾 サンプルマクロ" .InputMessage = "" .ErrorMessage = エラーメッセージ .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = True End With End Sub '----------------------------------------------------------------------------------------- Private Sub 入力規則をすべてクリアする() With Selection.Validation .Delete .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _ :=xlBetween .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .InputMessage = "" .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = True End With End Sub '=========================================================================================