- ベストアンサー
エクセル マクロでsheet2に自動書き込み
マクロで、グループボックス内でチェックボックスを作り、チェックされたらA列(A1~A10まで)に表示するように作りました。入力ボタンを作り、Sheet2(A列~J列)へ移すようにしました。しかし、2つの項目しかチェックされていなかった場合、空白が目立ち記録を見るととても見づらいです。そこで、空白がある場合は前に詰めるような記述はあるのでしょうか? (例)2つなら、C列とJ列に表示その他は、空白状態。→2つなら、A~B列に自動に詰める。 このようにしたいのですが、出来ますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
例えば、 セルA1~J1の空白セルを削除して左に詰めるマクロ記録は、 Range("A1:J1").Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.Delete Shift:=xlToLeft です。 >Sheet2(A列~J列)へ移すようにしました 移した後で、その行に対して上記コードを実施されては? ご参考になれば。
補足
ありがとうございます。早速やってみましたが、自分は初心者なのでもう少し教えてください。コンパイルエラーが出て、sub または funcion が定義されていません表示されました。何処に入れれば良いでしょうか? Sub 入力() Dim LastRow As Long With Worksheets("Sheet2") LastRow = Worksheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row + 1 .Range("A" & LastRow).Value = Worksheets("Sheet1").Range("A6").Value .Range("B" & LastRow).Value = Worksheets("Sheet1").Range("A7").Value .Range("C" & LastRow).Value = Worksheets("Sheet1").Range("A8").Value .Range("D" & LastRow).Value = Worksheets("Sheet1").Range("A9").Value .Range("E" & LastRow).Value = Worksheets("Sheet1").Range("A10").Value