この春にやりたいこと 住所録をつくる⑬ ~「削除」~
ExcelVBAを使用して、住所録を作っていきたい。
ユーザーフォーム上に入力フォームを作り、エクセルシート上に入力データを保存する、という流れを実現していく。
今回は、「削除」の動作を完成させたい。
削除の動作
修正の時との違い
OptionButtonをOpt_削除を選択
削除も、削除したいデータをLst_一覧から選んで、データを各Boxに表示させる、というところまでは修正の時と同じ動作になる。
住所録シートの修正したい行の名前、性別などの特定の列の文字を修正する、という形で修正をした。削除の時は、住所録シートの削除したい行を丸ごと削除する、という動作になる。
削除のコード
Private Sub Btn_削除_Click()
Dim R As Long, LR As Long
With Sheets("住所録")
LR = .Cells(Rows.Count, 1).End(xlUp).Row
For R = 2 To LR
If Txt_ID.Text = .Cells(R, 1).Value Then
.Cells(R, 1).EntireRow.Delete
End If
Next R
End With
Call TextBox内の値を消去
End Sub修正のコードを比べるとシンプルだが、よく見ると修正の時と同じように、ForNextで住所録シートの2行名から最下行のIDと、Txt_IDが同じものがあれば、削除の動作が実行される、というものになる。
EntireRowで、選択されたセルの行(この場合は.Cells(R,1))全体を取得した状態になる。
Deleteで、選択された範囲を削除する。この場合は.cells(R,1)の行ごと削除される。
Call TextBox内の値を消去で各Boxの値を削除する、
このような流れで削除が実行される。


追加機能
これである程度完成された。しかしまだ実際に使うにはやや不便なのでもうちょっと機能を追加させたい。
名前検索
名前検索は、今までの例でいうと3件しか登録されていない状態なので、修正・削除したい行を見つけることは目視でも容易だ。しかしこれが100件200件となるとちょっと大変になる。名前検索し、Lst_一覧内に絞った状態の結果のみ表示させるようにしたい。
郵便番号検索
郵便番号検索は、郵便番号を覚えていれば都道府県以降の住所の入力が楽になるが、逆に住所はわかるが郵便番号がわからない、というケースがあるかもしれない。そういうときのために追加させておきたい。
