- ベストアンサー
エクセルマクロ:チェックボックスを使った列のコピーとペースト
- 前回の質問では、sheet2のチェックボックスを使ってsheet1の列をコピーしてsheet3にペーストする方法を教えていただきましたが、今回はsheet4の列もコピーしてsheet3にペーストする方法を知りたいです。
- sheet2のチェックボックスを使って、sheet1とsheet4の列をコピーしてsheet3にペーストしようとしていますが、うまくいかないようです。どなたか解決方法を教えていただけませんか?
- 前回のベストアンサーによると、sheet2のチェックボックスを使ってsheet1の列をコピーする方法が書かれています。しかし、今回はsheet4の列もコピーしてsheet3にペーストしたいです。解決策を教えていただけますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
シート4のどの列をどうコピーしたいのか、何も説明がありません。一体何をしたいのでしょうか。 private sub CommandButton1_Click() dim res as range dim rmax as long dim i as integer dim n as integer dim temp as range rmax = worksheets("Sheet1").range("B1").end(xldown).row set res = worksheets("Sheet1").range("A1:A" & rmax) worksheets("Sheet3").usedrange.clearcontents for i = 1 to 20 if worksheets("Sheet2").oleobjects("CheckBox" & i).object.value then set res = union(res, worksheets("Sheet1").range("A1:A" & rmax).offset(0, i)) n = n + 1 end if next i if n = 0 then msgbox "NO CHECK" exit sub end if res.copy worksheets("Sheet3").range("A1").pastespecial paste:=xlpastevalues set temp = worksheets("Sheet3").cells(1, n + 2) set res = worksheets("Sheet4").range("A1:A" & rmax) for i = 1 to 20 if worksheets("Sheet2").oleobjects("CheckBox" & i).object.value then set res = union(res, worksheets("Sheet4").range("A1:A" & rmax).offset(0, i)) end if next i res.copy temp.pastespecial paste:=xlpastevalues application.goto worksheets("Sheet3").range("A1") temp.entirecolumn.delete shift:=xlshifttoleft end sub #補足 >無断で借用させていただきました 教わったマクロをコピーして掲示しても、何の情報提供にもなりません。(それをやるぐらいなら前回のご相談のURLを掲示して、こんな経緯がありましたと情報提供します) 「いま具体的にどういう内容のマクロをご自分のエクセルで動かしているのか」、あるいはもっと役に立つ情報提供としては「あなたはご自分で具体的にどんなマクロを書いて失敗したのか」といった、実際のあなたの今のエクセルの様子をご相談では記入してください。
お礼
keithin様 失礼な質問にもかかわらずご回答いただきありがとうございました。 sheet2にチェックボックスを追加して、CheckBox21とcheckBoxiならsheet1の列、CheckBox22とCheckBoxiならSheet4の列というようにしてコードを使用させていただきました。 nがカウント?することを初めて知り勉強になりました。 進歩のない私ですがご指導よろしくお願い致します。