コマンドボタンで前行、次行へ移動する

コマンドボタンで前行、次行へ移動する
コマンドボタンで前行、次行へ移動する

リンクユニット


Excel2016,2013マクロ 37回

ユーザーフォームでデータの前行、次行へ移動する

コマンドボタンで前行、次行へ移動する


(サンプルファイルは、こちらから マクロ37回サンプルデータ

前行ボタンで前の行に移動する

前の行に移動するボタンにコードを設定します。VBEを開いて、フォームを表示し、対象のコマンドボタンをダブルクリックして、コードを表示します。
コマンドボタンで前行、次行へ移動するマクロ1
コマンドボタンがクリックされた時の処理するコードが書けるようになります。
コマンドボタンの名称を変更していない時は、Private Sub CommandButton1_Clickというコードになっています。
コマンドボタンで前行、次行へ移動するマクロ2
マクロ講座36回で、ラベルに取得したudfrm2.lbRow = Target.Row行ナンバーですが、これを使います。udfrm2.lbRow を Me.lbRowと書き換えています。 前の行はx-1
コマンドボタンで前行、次行へ移動するマクロ3
あとは前回、Worksheet_SelectionChange プロシージャに書いたコードの再利用です。
コマンドボタンで前行、次行へ移動するマクロ4
ユーザーフォームを起動し、前の行ボタンでデータが表示されるか見てみます。
コマンドボタンで前行、次行へ移動するマクロ5

更新ボタンで修正データに書き換え

性別を男に変更して、更新ボタンを押すと、データが変わります。
コマンドボタンで前行、次行へ移動するマクロ6
前ボタンのコードです。データは5行目から入力されているので、4になったらExitします。また更新ボタンを押すことを考慮して、最後で Me.lbRow = x と指定しています。
Private Sub cmdPrev_Click()
Dim x As Integer
x = Me.lbRow
x = x - 1
If x = 4 Then Exit Sub
        Me.txtNo = Cells(x, 2)
        Me.txtName = Cells(x, 3)
        Me.txtID = Cells(x, 4)
        Me.txtad = Cells(x, 5)
        Me.combblood = Cells(x, 7)
        Me.txtAge = Cells(x, 8)
            If Cells(x, 6) = "男" Then
                Me.OpMale.Value = True
            Else
                Me.Opfemale.Value = True
            End If
        Me.lbRow = x
End Sub

次へボタンで次行に移動

次の行へ移動するボタンのコードは、前の行へ移動するコードと同じです。
コマンドボタンで前行、次行へ移動するマクロ7
データのある最後の行を選択して、フォームを起動させます。次ボタンを押すと次行へ移動しますが、データがないので、空欄になっています。
コマンドボタンで前行、次行へ移動するマクロ8
今回はユーザーフォームコマンドボタンで、シートの前行、次行へ移動するコードを紹介しました。お疲れさまでした。