- 締切済み
VBA ボタンに登録するセルの参照の仕方。
参照するセルを指定する方法を教えていただきたいです。 現在の私の知識ですとボタン一つずつに参照セルを一つずつ手打ちするしかなくて。想定としては2000行に2000個ぐらいを想定しております。 フォームコントロールのボタンにマクロを登録して添付画像のように各行に一つづつ配置したいと考えております。 ボタンに登録するマクロは以下のようなもので、ボタンを配置した行と同じ列の特定セルを画像左側のカレンダーにペーストするといったものです。 Sub ボタン_Click() ' セルを選択してコピー Range("AE2").Copy ActiveCell.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False 'コピー状態が残るのでキャンセル End Sub 皆様のお力を貸していただけると幸いです。 よろしくお願いします。 ※エクセルのバージョンはHome and Business 2019 です。
- みんなの回答 (15)
- 専門家の回答
みんなの回答
- kkkkkm
- ベストアンサー率66% (1742/2617)
訂正 以下でX列に2行目から2000個のボタンを作成します。 ↓ 以下でX列に2行目から2000行目までのボタンを作成します。
- kkkkkm
- ベストアンサー率66% (1742/2617)
あとすべtのボタンにマクロを登録するマクロは以下のように ボタンが連番になっていると思いますのでその連番の最初と最後を指定してください。 Sub Test1() Dim i As Long For i = 連番の最初 To 連番の最後 ActiveSheet.Shapes.Range(Array("Button " & i)).Select Selection.OnAction = "ボタン1_Click" Next End Sub
- kkkkkm
- ベストアンサー率66% (1742/2617)
以下でX列に2行目から2000個のボタンを作成します。 Sub Test() Dim i As Long For i = 2 To 2000 ActiveSheet.Buttons.Add(Cells(i, "X").Left, Cells(i, "X").Top, Cells(i, "X").Width, Cells(i, "X").Height).Select Next End Sub それぞれのボタンのイベントを以下のようにします。 Sub ボタン1_Click() ActiveCell.Value = Cells(ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row, "AE").Value End Sub
- kkkkkm
- ベストアンサー率66% (1742/2617)
失礼 No.1は勘違いでした
- kkkkkm
- ベストアンサー率66% (1742/2617)
ボタン一個でいいです。 Sub ボタン1_Click() ActiveCell.Value = Cells(ActiveCell.Row, "AE").Value End Sub
- 1
- 2