- ベストアンサー
Excelでのマクロについての質問
ひとつの例ですが A1 佐藤 A2 山田 A3 田中 A4 高橋 A5~A10 空白 B1 山下 B2 田代 B3 吉田 B4~B10 空白 と元のデータが入力されているとします A1~A10,B1~B10に入力されるセル数は変化します 例えばA4~A7にデータがあり、B1~B10は空白という場合もあります ただし必ず上から順に入力されているとします C1~C10、D1~D10には [C1] =IF(A1<>"",A1&"君",""),[C2] =IF(A2<>"",A2&"君","") ・・・ [D1] =IF(B1<>"",B1&"君",""),[D2] =IF(B2<>"",B2&"君","") ・・・ というように元のデータを 加工するための数式が入力されています マクロが登録されているボタンを押すと E1から下方向へC1,C2,C3,C4,D1,D2,D3,(以後空白)と C1~C10、D1~D10の順に空白を除いた「値」が入力されるよう マクロを組むにはどうすればいいでしょうか
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
C1~C10、D1~D10と順にデータの有無をチェックして データが有ればE列に転記します。 Sub test() Dim c As Range, i As Long For Each c In Range("C1:C10,D1:D10") If c.Value <> "" Then i = i + 1 Cells(i, "E").Value = c.Value End If Next End Sub
その他の回答 (1)
- hige_082
- ベストアンサー率50% (379/747)
こんな感じ? Sub test() Dim ran As Range Dim i As Integer Dim mRow As Integer, mCol As Integer i = 1 For mCol = 3 To 4 For mRow = 1 To 10 If Cells(mRow, mCol).Value <> "" Then Range("e" & i).Value = Cells(mRow, mCol).Value i = i + 1 End If Next mRow Next mCol End Sub 初歩的なコードで組んでいるので、解説はなし この機会に勉強されては
お礼
どうもありがとうございました。勉強してみます。
お礼
どうもありがとうございます。 すっきりしててよいですね