スナックelve 本店

バツイチ40代女の日記です

No.0972 ボタンを縦に並べて押したボタンの行を取得する

コレ職場の人に見つかるとばれるな。まぁいいや。もっと良い方法があれば教えてチョウダイ。

まずこんな感じのモノを作れるの前提で

f:id:elve:20161022012720p:plain


このA列のボタンを押したらその行とかが返ってくると良いな的な話です。
マクロ使います。
ボタンを一個作って、マクロ作って、ボタンに登録してからボタンをコピペして並べるのが良いかも。

条件付き書式

ついでにボタンを押したらその行の色が変わるようにします
f:id:elve:20161022012933p:plain

マクロ

Sub ボタン1_Click()
'A列クリア
Range("A4:A13").Clear

'ボタン位置取得
Set ボタン位置 = ActiveSheet.Shapes(Application.Caller).TopLeftCell

'押したボタンの下に1入力
ボタン位置.Value = 1

'ボタンの行=選択行
選択行 = ボタン位置.Row

'B:D列入力チェック(3つまとめて)
Set 項目 = Range(ボタン位置.Offset(0, 1), ボタン位置.Offset(0, 3))
If WorksheetFunction.CountA(項目) = 0 Then
    '入力なし
    項目1 = "入力がありません"
    項目2 = "入力がありません"
    項目3 = "入力がありません"
Else
    '入力有り
    項目1 = ボタン位置.Offset(0, 1).Value
    項目2 = ボタン位置.Offset(0, 2).Value
    項目3 = ボタン位置.Offset(0, 3).Value
End If

'選択行
MsgBox ("選択行: " & 選択行 & vbCrLf & _
"項目1: " & 項目1 & vbCrLf & _
"項目2: " & 項目2 & vbCrLf & _
"項目3: " & 項目3)

End Sub

実行結果

f:id:elve:20161022015253p:plain