入力済み最終行を見つけて追記・削除する方法

パソコン難しい
目次

エクセルVBAのユーザーフォームで一発検索する

ボウリング場のリーグ戦成績表でも使っているエクセル。

エクセルには参加者のスコアーなど様々なデータを入力しますが、まず最初に行う作業が選手登録です。

当然ワークシートに直接入力して、間違ったらクリアすればいいのですが、エクセルシートをわざわざクリックしてスクロールしたりするのが面倒で時間の無駄です。

そこで、オリジナル入力兼修正画面を作ってしまえば、見つける手間が省けて作業効率がアップします。

ここでは、「ボウリング成績表選手登録方法~LTB個人リーグ編」でも使用している【入力取消】ボタン(コマンドボタン)を押すと、自動的に選手登録済みデータの中(表)から一番最後に入力されたデータを見つけて入力済みデータをクリアしてくれるようにします。

あわせて読みたい
ボウリング成績表選手登録方法~LTB個人リーグ編 リーグ戦参加者を新規登録・修正・削除することが可能です。 VBA(マクロ)が無効の場合はユーザーフォームが使えません。必ず有効にして下さい。 【選手登録方法~LTB...

ラベル一括変換後

この図は【新規登録】(コマンドボタン)を使って30名を登録した状態です。

登録方法のVBAコードに関しては、別のページで書いてありますのでこのページでは省略します。

あわせて読みたい
複数のラベル名を一括で複数のセルの値に書き換える方法 【ラベルキャプションをセルの値から一括取得】 ボウリングの大会や予約でASで名前登録作業を行っていて、一人目の名前を入れると、空欄の部分に登録した名前が表示され...

また、入力済みデータの修正方法のVBAコードに関しても別のページで書いてありますので、これもここでは省略します。

あわせて読みたい
VLOOKUPをVBAラベルを活用してデータ検索・修正をする方法 【ラベル(Label)にVBAコードを記述する】 ボウリング成績表でも使っているユーザーフォームに配置した文字を表示するための「ラベル(Label)」にも、実はVBAコードを...

ここでは、普段の作業で参加者の書いてある紙を見ながらエクセルに新規登録している途中で、

ひとり飛ばして間違って入力してしまった時に、最後に入力した人を削除する方法です。

コマンドボタンにEnd(xlDown)を使ったコードを書いて最終行の値をクリア

画像スペースの都合で、16行目まで(AA16まで)切り取って貼り付けています。実際は42行目まであります。(AA42)

では実際に、入力取消ボタンにはこのようなコードが書いてあります。
Private Sub CommandButton3_Click()
msg = MsgBox(“最終入力選手を取消しますか?”, Buttons:=vbYesNo + vbQuestion)
If msg = vbYes Then
Range(“AB2”).End(xlDown).Value = “”
Range(“AC2”).End(xlDown).Value = “”
Range(“AD2”).End(xlDown).Value = “”
Range(“AE2”).End(xlDown).Value = “”
For i = 44 To 83
With UserForm1.Controls(“Label” & i)
.Caption = Cells(i – 41, 29)
End With
Next i
For j = 84 To 123
With UserForm1.Controls(“Label” & j)
.Caption = Cells(j – 81, 31)
End With
Next j
End If
End Sub
  1. 「コマンドボタン3をクリックしたら実行する」というマクロの記述を開始
  2. メッセージで「最終入力選手を取り消しますか?」と表示して「はい」「いいえ」を選択させる
  3. もし「はい」を選択したら
  4. セルAB2(会員番号)の入力済み最終行の値を空欄にする
  5. セルAC2(名前)の入力済み最終行の値を空欄にする
  6. セルAD2(性別)の入力済み最終行の値を空欄にする
  7. セルAE2(AVE)の入力済み最終行の値を空欄にする

8行目以下はワークシートに入力されているセルの値を読み込んで、この画面に(選手登録ユーザーフォーム)表示するというコードですが、これも別のページで書いてありますので、ここでは省略します。

あわせて読みたい
VLOOKUPをVBAラベルを活用してデータ検索・修正をする方法 【ラベル(Label)にVBAコードを記述する】 ボウリング成績表でも使っているユーザーフォームに配置した文字を表示するための「ラベル(Label)」にも、実はVBAコードを...

これで、最終入力済みセルを見つけて空欄にすることができるようになります。

当然、【入力取消】ボタンを押した回数分、次々と入力済み最終行が空欄になりますが、AB2のように2行目を指定しているので、全部消せたとしても3行目までで、2行目の「会員番号」自体は消せないようになっています。

消えたら困ります!
セルAB1としてしまうと、2行目の「会員番号」自体も消せるようになります!

Excel-VBAもくじへ

よかったらシェアしてね!
  • URLをコピーしました!
目次