見出し画像

この春にやりたいこと 住所録をつくる⑪ ~コードの修正~

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 Sub

1990年だと今年で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_一覧の中でこれまで登録した住所録の一部を表示させたい。また、修正、削除する時もこの中から対象のデータを選んで修正・削除するという動作をするためにリストボックスを追加する必要がある。

次回

次回は今度こそ「修正」の動作のコードを仕上げたい。できれば「削除」も。
以下、修正・削除に使う仮のデータになる。

小さくて見にくいかと思います…

いいなと思ったら応援しよう!

この記事が参加している募集