アクティブブックから別のブックに特定の範囲のセルをコピーするボタンをExcelで作成しようとしています。この範囲のコピーは、固定範囲を指定すると完全に機能しますが、クリックされたボタンの行を把握する方法に困惑しています。
すべての行には7個程度のセルが含まれ、8番目のセルにはマクロがアタッチされた図形(ボタン)が含まれます。ユーザーがこのボタンを押すと、押されたボタンを含む行と同じ行にある7つのセルがコピーされる必要があります。
ボタンを押しても実際にはそのセルがアクティブに設定されないため、ActiveCellを使用しても意味がありません。何度も検索しましたが、この値を取得する方法を見つけることができません。クリックしたボタンの行番号がわかれば、残りを自分で把握できます。
各Shape
にはTopLeftCell
プロパティがあります。これには、形状の左上隅が存在するセルが含まれます。
ここで言及されている素晴らしい解決策があります: http://www.ozgrid.com/forum/showthread.php?t=33351&p=167317#post167317
上記の投稿からコピーされたゴールデンコード:
Sub Mainscoresheet()
' Mainlineup Macro
Dim b As Object, cs As Integer
Set b = ActiveSheet.Buttons(Application.Caller)
With b.TopLeftCell
cs = .Column
End With
MsgBox "Column Number " & cs
End Sub
すばらしい答えです。ところで、これはRownumberでも機能します!
'Same for rownumbers!
Sub Mainscoresheet()
' Mainlineup Macro
Dim b As Object, RowNumber As Integer
Set b = ActiveSheet.Buttons(Application.Caller)
With b.TopLeftCell
RowNumber = .Row
End With
MsgBox "Row Number " & RowNumber
End Sub