入力ミス・改変を許さない。ワンクリックで復活する「入力規則」設定マクロ

【業務効率化】VBA
スポンサーリンク

こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!

今日はExcel VBAを使った「入力規則(Validation)」の設定方法をお伝えします。

【業務効率化】VBAの記事を見る

なぜExcel標準機能ではなく「VBA」なのか?

「データ」タブにある「データの入力規則」を使えばいいじゃない、と思いませんか?

でも、現場ではこんなことが起こります。

  1. 自分が完璧に入力規則(リスト選択など)を設定する。
  2. 誰かが別の場所からセルをコピーして、書式ごと貼り付ける。
  3. 入力規則が上書きされて消える!
  4. そのまま運用され、結果、めちゃくちゃなデータが入力される。

これ、チームなどで使っていると「あるある」ですよね。

でも、VBAを使えばボタン一つで「鉄壁のルール」を何度でも復活させることができます。

【コピペOK】鉄壁のリスト選択を作るVBA

今回は、よく使う「部署名をリストから選ばせる(手入力を禁止する)」コードを紹介します。

以下のコードを標準モジュールに貼り付けてみてください。

Sub SetIroncladValidation()
    ' 画面の更新を止めて高速化
    Application.ScreenUpdating = False

    Dim targetRange As Range
    ' 設定したい範囲を指定(ここではA2からA100まで)
    Set targetRange = Range("A2:A100")
   
    ' 対象範囲の設定を開始
    With targetRange.Validation
        ' 既存のルールを削除(エラー回避のため)
        .Delete
       
        ' 新しいルールを追加
        .Add Type:=xlValidateList, _
            AlertStyle:=xlValidAlertStop, _
            Operator:=xlBetween, _
            Formula1:="営業部,人事部,総務部,開発部"
       
        ' 入力時メッセージの設定
        .InputTitle = "部署選択"
        .InputMessage = "リストから部署を選んでください。"
       
        ' エラーメッセージの設定
        .ErrorTitle = "入力エラー"
        .ErrorMessage = "その部署名は存在しません。リストから選択してください。"
       
        ' 無効なデータを強調表示しない(通常の制限動作)
        .ShowInput = True
        .ShowError = True
    End With

    ' 画面更新を再開
    Application.ScreenUpdating = True
   
    MsgBox "入力規則をセットしました!", vbInformation
End Sub

これをExcelの機能でやろうとするとあちこちカチカチしてカタカタ入力しないといけないので、けっこう手間なんですよね…

コードの解説

  1. .Delete: 古いルールや、誰かがコピペで壊してしまった設定を一度「無」にします。更地にするイメージです。
  2. .Add Type:=xlValidateList: ここで「リスト形式」を指定しています。
  3. Formula1:=”営業部,…”: リストの中身です。Excelシート上の別リストを参照したい場合は、Formula1:=”=部署マスタ!$A$1:$A$4″ のように書くこともできます。
  4. .ErrorMessage: 間違った入力をした瞬間に表示されるメッセージです。機械的に弾くのではなく、正しい入力に誘導する文言にしておくと、使う人も安心します。

おわりに:運用を楽にするために

​このマクロを「入力完了ボタン」や「保存ボタン」などに組み込んでおけば、ユーザーがどのような操作をしても、最終的には必ず正しい入力規則が適用された状態を保てます。

​「また設定が消えてる…」となってしまう前に、ぜひこのVBAでルール管理を自動化してみてください。

【業務効率化】VBAの記事を見る


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました