'該当シートのセルをダブルクリックすると実行するマクロです
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'シートのアクティブ状態を解除します
Cancel = True
'ダブルクリックで実行される行を設定します
Dim aRow
aRow = Target.Row
'2行目から実行します
If aRow >= 3 Then
'行No.を保存
Worksheets("入出力フォーム").Cells(3, "F") = aRow
'入出力フォームにデータを転記します
Call GetData
End If
End Sub
VBAコード『GetData』
ダブルクリックした行の台帳を入出力フォームへ転記します。(標準モジュールへ記載)
'入出力フォームへデータを転記します
Sub GetData()
'行No.を取得します
Dim aRow
aRow = Worksheets("入出力フォーム").Cells(3, "F")
'『DB』シートから支店名、部品名、内部部品1~6を取得します
Dim Hozon As Variant
With Worksheets("DB")
Hozon = .Range(.Cells(aRow, "A"), .Cells(aRow, "H"))
End With
'『入出力フォーム』シートに支店名、部品名、内部部品1~6、行No.を転記します。
With Worksheets("入出力フォーム")
.Cells(3, "C") = Hozon(1, 1) '支店名
.Cells(4, "C") = Hozon(1, 2) '部品名
For i = 1 To 6
.Cells(5, "C").Offset(i, 0) = Hozon(1, 2 + i) '内部部品1~6
Next
End With
With Worksheets("入出力フォーム")
.Activate
End With
End Sub
VBAコード『WriteData』
入出力フォームのシートに入力した内容を部品管理台帳へ書込みするマクロです。(標準モジュールへ記載)
'『DB』シートへ書込するマクロです
Sub WriteData()
'『入出力フォーム』シートから支店名、部品名、内部部品1~6、行No.を取得します
Dim Hozon As Variant
ReDim Hozon(1 To 1, 1 To 8) As Variant
Dim aRow
With Worksheets("入出力フォーム")
Hozon(1, 1) = .Cells(3, "C") '支店名
Hozon(1, 2) = .Cells(4, "C") '部品名
For i = 1 To 6
Hozon(1, 2 + i) = .Cells(5, "C").Offset(i, 0) '内部部品1~6
Next
aRow = .Cells(3, "F") '行No.
End With
'『DB』シートへ支店名、部品名、内部部品1~6を書き込みます
With Worksheets("DB")
.Range(.Cells(aRow, "A"), .Cells(aRow, "H")) = Hozon
End With
'最取込をして、書き込んだデータを確認します
Call GetData
End Sub
'新規登録
Sub WriteDataNew()
'最後の行を取得する
Dim LastRow
With Worksheets("DB")
LastRow = .Cells(Rows.Count, "A").End(xlUp).Row
LastRow = LastRow + 1
End With
'入出力フォームへ最終行を入力
Worksheets("入出力フォーム").Cells(3, "F") = LastRow
'書き込み
Call WriteData
'最取込をして、書き込んだデータを確認します
Call GetData
End Sub