• ベストアンサー

チェックボックスでOnの場合に行全体をコピペしたい。

いつもお世話になっております。 このたび週単位で営業アタックリストを作成するに当たり、翌週に持ち込む継続案件を翌週分の週報にコピペする方法を探しています。   A   B    C                D    E 1 社名 住所  商品名(コンボボックス) 金額  継続印(チェックボックス) 2.... 3... となっていて、 Eのチェックボックスにチェックを入れると、自動的に次項の同じフォーマットに、1行がコピー(コンボボックスの中身も)される方法はないでしょうか? どなたか助けてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

遅くなりました。 > 次項というのは、改ページしてという意味だったんです ん...Excel の改ページというのは結構難しいんですよ。Word みたいに ページ一行目の位置が固定してないからです。例えば、行の高さを変え たり、印刷設定の余白幅、用紙の向き、ページの方向など様々な要素が 影響し、簡単に一行目の位置が変わってしまう。 結局、A 列の最終行を調べて、その下にコピペするマクロになってます。 標準モジュールに下記ソースコードをコピペして、シート上の CheckBox の右クリックメニュー「マクロの割り当て」でこれを割り当てて下さい。 取り合えずアップしましたが、ご不明な点があれば補足欄にお願いします。 Sub CopyRows()   Dim Shp As Shape   ' マクロの呼び出し元を取得します   Set Shp = ActiveSheet.Shapes(Application.Caller)   ' マクロの呼び出し元は CheckBox か?   If Shp.FormControlType = xlCheckBox Then     ' CheckBox は On か?     If Shp.ControlFormat.Value = xlOn Then       ' コピー用に一時的に CheckBox を Off にする       Shp.ControlFormat.Value = xlOff       ' コピー & 貼り付け       Shp.TopLeftCell.EntireRow.Copy Destination:= _       Cells(Rows.Count, "A").End(xlUp).Offset(1)       ' 一時的に Off にした CheckBox を元に戻す       Shp.ControlFormat.Value = xlOn     End If   End If End Sub

acmr
質問者

お礼

ありがとうございます! 大変難ありな質問で失礼いたしました! チャレンジしてみます。 とり急ぎ、お礼まで。

その他の回答 (1)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんばんは。KenKen_SP です。 1. Word ですか? Excel ですか? 2. チェックボックスは次のどちら?   ・フォーム   ・コントロール ツールボックス 3. > 自動的に次項の同じフォーマットに、1行がコピー   次項とは? それで回答がかわります。具体的に補足して下さい。 マクロを使うことになりそうです。

acmr
質問者

補足

KenKen_SP さん、ありがとうございます。 補足ですが、EXCELのフォームです。 次項というのは、改ページしてという意味だったんです。すいません。 以上でご理解いただけましたでしょうか?よろしくお願いします。

関連するQ&A