- ベストアンサー
確認後、一発入力!!
A1・C2・D4に入力すると、E列・F列・G列に上から順に表示させるみたいな ことは可能ですか? 1回目 ABCD EFGH 15 567 2 6 3 4 7 2回目 ABCD EFGH 13 567 2 3 5 3 4 5 みたいな感じで空白は空白で表示したいのですが、可能でしょうか?? という質問に対し、このマクロを教えていただいたんですが、 Private Sub Worksheet_Change(ByVal Target As Range) Dim myC As String Dim x As Range If Intersect(Target, Range("A1,C2,D4")) Is Nothing Then Exit Sub Select Case Target.Address(0, 0) Case "A1": myC = "E" Case "C2": myC = "F" Case "D4": myC = "G" End Select If Cells(Rows.Count, myC).End(xlUp).Value = "" Then Set x = Cells(Rows.Count, myC).End(xlUp) Else Set x = Cells(Rows.Count, myC).End(xlUp).Offset(1) End If x.Value = Target.Value End Sub 入力用セルがもっとたくさんある為、全て入力後に、確認してから EFGの列に反映させたいのですが、可能でしょうか? わかりずらくスミマセン・・・・・。 ヨロシクおねがいします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
前回そのマクロを回答したmerlionXXです。 では自動実行ではなく、確認後に実行を指示できるやりかたです。 前回とは手順がちがいます。 以下の手順をおためしください。 1.Altキー+F11キーで Visual Basic Editor画面を呼び出します。 2.画面上部のメニューバーから挿入、標準モジュールで出てきたコードウィンド(右側の白い広い部分)に以下のコードをコピペします。 '*****ここから下をコピペ***** Sub test01() Dim myAr Dim x As Long myAr = Array(Range("A1"), Range("C2"), Range("D4")) For n = LBound(myAr) To UBound(myAr) If IsEmpty(myAr(n)) Then myAr(n) = " " End If Next n If IsEmpty(Cells(Rows.Count, "E").End(xlUp)) Then x = Cells(Rows.Count, "E").End(xlUp).Row Else x = Cells(Rows.Count, "E").End(xlUp).Offset(1).Row End If Cells(x, "E").Resize(, UBound(myAr) + 1).Value = myAr End Sub '*****ここより上までをコピペ***** 3.Alt+F11キーでワークシートへもどります。 4. Alt+F8キーでマクロを呼び出し「test01」を実行します。
その他の回答 (2)
- watabe007
- ベストアンサー率62% (476/760)
参考に Sub Test() Dim myRang As Range Dim i As Long, LastRow As Long Dim c As Range Set myRang = ActiveSheet.Columns("A:D").SpecialCells(xlCellTypeConstants) 'E~Gの最終行検出 For i = 5 To 7 LastRow = WorksheetFunction.Max(Cells(65536, i).End(xlUp).Row, LastRow) Next For Each c In myRang Select Case c.Column Case 1: Cells(LastRow + 1, c.Column + 4).Value = c.Value Case 3, 4: Cells(LastRow + 1, c.Column + 3).Value = c.Value End Select Next End Sub
お礼
できました、ありがとうございます!!
- hige_082
- ベストアンサー率50% (379/747)
条件が曖昧すぎ >A1・C2・D4に入力すると、E列・F列・G列に上から順に表示させるみたいなことは可能ですか? 可能 >みたいな感じで空白は空白で表示したいのですが、可能でしょうか?? 条件付きで可能 すべての入力が空白の場合があるのか無いのか? ある場合は入力済みの行を捉えるため 例えばH列に入力済を示す番号や日付などの入力が必要 E・F・G列で必ず入力される列があるのか? 無ければ、上と同じで入力済みを示す列を設ける必要がある >入力用セルがもっとたくさんある為、全て入力後に、確認してから EFGの列に反映させたいのですが、可能でしょうか? ボタン等で対応すれば、反映させたいタイミングで ボタンを操作すればよいので可能 '条件A1の入力が毎回必ずされる 'もっと沢山とありましたが具体的なアドレスが無いので無視してます Sub 入力() Dim x As Long x = Cells(Rows.Count, 5).End(xlUp).Row Cells(x, 5).Value = Range("a1").Value Cells(x, 6).Value = Range("c2").Value Cells(x, 7).Value = Range("d4").Value End Sub 参考まで
お礼
曖昧すぎてスミマセン・・・。 気をつけます。
お礼
思うようにできました!! 助かりました。 ありがとうございます!! また何かあればヨロシクお願いします。