VBA 仕入管理6(呼出、クリア、削除)

呼出ボタン

呼出ボタンは登録が完了した発注リストの中から選択して修正するために、選択た行の内容を入力フォームに呼出をするためのものです。

Sub DCall_07()
Application.EnableEvents = False

On Error GoTo jump1

Dim cr1 As Integer
Dim cc1 As Integer
cr1 = ActiveCell.Row
cc1 = ActiveCell.Column

If cr1 > 6 Then
 If cc1 > 4 And cc1 < 19 Then
  If Cells(cr1, 5).Value = “” Then Exit Sub
   For k = 5 To 17
    Cells(5, k).Value = Cells(cr1, k).Value
   Next
 End If
End If

Cells(5, 18).Value = cr1
jump1:

Application.EnableEvents = True
End Sub

処理の途中でエラー(Error)が発生したらjump1まで処理を飛ばします。(GoTo jump1)
選択したセルの行と列の値を取得しています。 (ActiveCell)
選択された行と列の値をIf文を使って評価しています。(7行以上、5列目から18列の間で)
選択したセル内容が空白であればExit Subで処理を抜けます。
選択した行のデータを5行目の入力欄に転記します。

クリアボタン

クリアボタンは入力欄(“E5:R5”)と入力候補欄 Range(“A6”).CurrentRegionをクリアするためのものです。

Sub Clr_07()
Application.EnableEvents = False   

‘入力欄クリア   
Range(“E5:R5”).Select   
Selection.ClearContents
 
ActiveSheet.Range(“A6”).CurrentRegion.Select ‘入力候補欄消去   
Selection.ClearContents
 
Range(“I5”).Select   
Application.EnableEvents = True
End Sub

“E5:R5″セルをセレクトしてクリアしています。 次に、A6セルに連続した入力されている範囲を取得するCurrentRegionを利用して範囲をクリアしています。

削除ボタン

登録され発注リストにある注文内容を削除します。

Sub Del_07() ‘発注予約削除
On Error GoTo jump1

DCall_07

res = MsgBox(“選択行データが削除されます。処理を続けますか?”, vbYesNo)

If res = vbYes Then   
 f = Cells(5, 18).Value   
 Range(Cells(f, 2), Cells(f, 18)).Delete   
 Range(Cells(f, 2), Cells(f, 18)).Insert   
 MsgBox (“削除されました。”)   
 Exit Sub
End If

If res = vbNo Then   
 Exit Sub
End If

jump1:
End Sub

上述した「呼出」DCall_07で選択した行のデータを入力欄に転記します。 これは削除のちのデータ復活のための保険です。不要であれば削除してください。

res = MsgBox(“選択行データが削除されます。処理を続けますか?”, vbYesNo)でメッセージの選択結果をresに代入します。
res = vbYesで選択行を削除(Delete)します。

Range(Cells(f, 2), Cells(f, 18)).Delete 削除した行を戻すためRange(Cells(f, 2), Cells(f, 18)).Insertで行を挿入しています。
これは罫線が設定されているためです、罫線がなければ不要なため削除してください。

次回は「注文書」を作成していきます。

タイトルとURLをコピーしました