- ベストアンサー
Excel 2010 -ボタン押下時、行挿入-
いつも皆様の質問や回答を拝見し、Excelの勉強をさせていただいている者です。 今回、画像添付のようなシートがありコマンドボタンを押したときにA1行をコピー・ コマンドボタンがある位置を取得し、その行にコピーした行を挿入したいと考えております。 行をコピーし挿入するVBAは解るのですが、コマンドボタンが押された時にボタンの行位置を 取得する方法を調べることが出来ませんでした。 ちなみにコマンドボタンは全部で20個位あります。 皆様の知恵をお借りしたく質問させていただきました。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あぁ、ActiveXコントロールのコマンドボタンじゃなくてフォームコントロールのボタンでしたか。 まず、プロパティ名で使用されている「row」などの名前を変数名に使うのはやめましょう。無用なトラブルの元です。 また、提示されたコードでは Range(row).Activate の箇所でエラーになりませんか? ここは Rows(row).Activate のコピペミスでしょうかね。 ちょっと書き直してみました。これでどうでしょう。 Sub Sample() Dim nRow nRow = ActiveSheet.Shapes(Application.Caller).TopLeftCell.row Rows(3).Copy Rows(nRow).Insert Shift:=xlDown End Sub
その他の回答 (1)
- mt2008
- ベストアンサー率52% (885/1701)
例えば、こんな感じでボタンの左上に位置するセルの行を取得できます。 CommandButton1.TopLeftCell.Row
補足
現在のコードです Dim row 変数宣言 row = ActiveSheet.Shapes(Application.Caller).TopLeftCell.row 行番号を変数rowに代入 MsgBox row 確認のため取得行番号を表示 = コピーする行は常にこの行です = Rows("3:3").Select コピーする行を選択 Selection.Copy 選択行をコピー Rows(row & ":" & row).Select Range(row).Activate 取得した行番号をアクティブにする Selection.Insert Shift:=xlDown コピー行の挿入 以上のコードでA3行をコピー・ボタンが押された行に コピー行を挿入できると考えていたのですが、上手く 動きません。 例えば20行目にボタンを作成し、上記マクロを登録 し実行すると3行目から挿入されてしまいます。 よろしければ解決方法をご教授頂けますでしょうか?
お礼
mt2008様、ありがとうございます。 おかげ様でやりたい事が出来るようになりました。