いきさつ
ある会社で Excelでトラックの運行管理をしている方より「車番を追加したいが方法が解らない...」と Lineが入った。
ん? 以前、車番 0000 を追加したじゃん?‥‥ で、ブログを検索したら
内容を一通り読んで、急いでいるであろうから伺った。
車番追加手順
基本的には前述ブログのとおりであるが、環境が変わっていた。
テンプレート・シート*1 ワークシートを開く- シートの保護を解除する。*2
- シート見出しを右クリック ⇒ シート保護の解除 をクリックする。
- 解除しておかないと(1)Excelのコマンドが使えなかったり、(2)セルや行、または列が選択できない場合が発生する。
- MMUSタブ/表示設定グループの[全面表示]コマンドを起動する。
- 車番の非表示行を表示する。*3
- 例えば、行 8:16 を選択し右クリック ⇒ 再表示 をクリックする。
- 車番を追加する
- 例えば、セルD9に「
0000」を入力する。*4- 必ず追加する。挿入すると入力済み運行データとの整合性が取れなくなる。
- 使っていない行を非表示にする。(任意)
- 例えば、行 10:15 を選択し右クリック→非表示 をクリックする。
- 運送トラックNO(D列) の データの入力規制/元の値 を更新する。
帰宅して‥‥
- 「データの入力規制」は、まず1件(セルD21を)修正し、正しく表示されることを確認
- その後、以下のセル(セルD22~D200)にコピペするのが正道であろう
から、まず、データの入力規制 がコピペできるか‥‥ から調べた。
データの入力規則のコピーと貼り付け|初心者のためのOffice講座
上記を参考にやってみた。
- セルD21のデータの入力規制を修正する
- セルD21を選択する。
- 試しに[▼]をクリックしても、1234 は表示されない...
- データ タブ/データツール グループの[データの入力規制]をクリックする。(Excel2021の場合)
- 「元の値」を広げて‥‥ [OK]
- セルD21の[▼]をクリックして、1234 が表示されることを確認する。
- セルD21を選択する。
- セルD21の入力規制をセルD22~D200 にコピペする
- セルD21を選択し、(選択されているはず...)
- Ctrl+C。(右クリック ⇒ コピー)
- セルD22~D200 を選択し、
- Ctrl+Alt+V。(右クリック ⇒ 形式を選択して貼り付けの[>]をポイント ⇒ 形式を選択して貼り付け をクリック)
- ●入力規制 を選択し、
- [OK]する。
- セルD22の[▼]をクリックし、1234 が表示されるのを確認する。
セルD21の入力規制をセルD22~D200にコピペするVBAコード
手順は解ったが、先々のためマクロを記録し、修正して出来たコードが下記で、実費的には4行であった。
01.Sub トラックNoの入力規制のコピペ()
02.Dim mbTitle As String
03.Dim lngAns As Long
04.
05. mbTitle = "トラックNoの入力規制のコピペ/" & ThisWorkbook.Name
06. If = MsgBox("セルD21 の入力規制を D22:D200 にコピーします。", _
07. vbOKCancel + vbInformation, mbTitle) = vbCancel Then Exit Sub
08.
09. Range("D21").Select
10. Selection.Copy
11. Range("D22:D200").Select
12. Selection.PasteSpecial Paste:=xlPasteValidation, Operation:=xlNone
13.
14. Range("D22").Select
15.
16.End Sub