この春にやりたいこと 住所録をつくる⑪ ~コードの修正~
ExcelVBAを使用して、住所録を作っていきたい。
ユーザーフォーム上に入力フォームを作り、エクセルシート上に入力データを保存する、という流れを実現していく。
これまでは「登録」するためのコードを作り、今回は「修正」のコードを書きたかったのだが、その前にいくつかコードの修正が必要なので、ちょっと回り道になるが、コードの修正をしたい。
カレンダーの初期設定の修正
西暦の修正
これまではカレンダーフォームを開いたときに西暦は、現在の西暦を表示させていた。しかし、このような住所録に登録する相手は大人だ。現在の西暦を表示させるより、今年で30代半ばになる、くらいの西暦を表したほうが良いと思うので一部修正した。
Txt_西暦.Text = Year(Date) → Txt_西暦.Text = 1990
Private Sub UserForm_Initialize()
Txt_西暦.Text = 1990
Txt_月.Text = Month(Date)
Call 日の設定
Dim Cnt As Long
For Cnt = 1 To 42
Set Labels(Cnt).MyLbl = Controls("Label" & Cnt)
Next Cnt
End Sub1990年だと今年で36歳になる。この住所録に載せる年齢層の想定は20から60歳となんとなく思っているので、まあ間を取った、という感じだ。
OptionButtonとListBoxの追加
登録・修正・削除の動作修正
OptionButton3つとListBox1つを追加。オブジェクト名はそれぞれ
Btn_登録、Btn_修正、Btn_削除、Lst_一覧とする。

Frm_住所録のコードに以下のコードを書く。
OptionButtonを切り替えるごとにボタンの表示が変わる。
Sub ボタン表示の切り替えとリストボックスロック()
’登録ボタンがTrue...登録ボタンが表示、リストボックスがロック
If Opt_登録.Value = True Then
Btn_登録.Visible = True
Btn_修正.Visible = False
Btn_削除.Visible = False
Lst_一覧.Locked = True
’修正ボタンがTrue...修正ボタンが表示、リストボックスのロック解除
ElseIf Opt_修正.Value = True Then
Btn_登録.Visible = False
Btn_修正.Visible = True
Btn_削除.Visible = False
Lst_一覧.Locked = False
’削除ボタンがTrue...削除ボタンが表示、リストボックスのロック解除
ElseIf Opt_削除.Value = True Then
Btn_登録.Visible = False
Btn_修正.Visible = False
Btn_削除.Visible = True
Lst_一覧.Locked = False
End If
End Sub
Visible=Trueでボタンが表示される。Visible=Falseでボタンが非表示になる。
Opt_〇〇.value=trueでオプションボタンが選択された状態になる。
リストボックス
これまで作成していなかったが、このLst_一覧の中でこれまで登録した住所録の一部を表示させたい。また、修正、削除する時もこの中から対象のデータを選んで修正・削除するという動作をするためにリストボックスを追加する必要がある。
次回
次回は今度こそ「修正」の動作のコードを仕上げたい。できれば「削除」も。
以下、修正・削除に使う仮のデータになる。

