VBAに詳しい方、どなたか助けてください。

画像
補足

原則としてD7かF7は必ずどちらかに数字が入ります。 パターンは①D 7のみ、②F7のみ、③D 7とF7、④D 7とE12、⑤F7と E12、⑥D7と F7とE12です。 ④〜⑥のE列は12〜19まで数字が入るケースと入らないケースがあり、基本的に上から順に数字が入ります。

Visual Basic604閲覧

ベストアンサー

0
ID非公開

2022/1/26 11:42

ありがとうございます!VBAを試しました。 試したところ、①D7にのみ数字が入っていた場合、②F7にのみ数字が入っていた場合のどちらもO、P、Q列が空白になり、S列から再び数値が転記されました。 O、P、Q列を詰めて転記するようにすることはできますでしょうか。 ③D7とF7の両方に数字が入っていた場合は、S、T、U列が空白となりました。 S、T、U列を詰めて転記するようにすることはできますでしょうか。 大変お手数おかけいたしますが何卒よろしくお願いいたします。

ThanksImg質問者からのお礼コメント

目的の転記作業をVBAで効率化をはかれました。ありがとうございました。 他に回答やご助言をいただいた方もありがとうございました。

お礼日時:1/26 13:44

その他の回答(1件)

0

質問の内容についてプログラムしてみました。 添付図を参照の上、かなりうまく行きそうであれば、プログラムをコピペして確認ください。 内容がかなり複雑でうまく理解できたかどうかの疑問がありますので、確認させて下さい。 質問の添付図には、行番号が表示されていないため分りませんが、⑥の「L21」、「M21」は「L22」、「M22」ではないでしょうか、「21」にすると添付図のようになりますが。 もし、22行が正しければ、プログラム中の終りの部分に書かれているCells(n0+9,*)の「n0+9」を「n0+10」に書換え下さい。 プログラムは以下の通りです。 Sub ボタン4_Click() Dim n0 As Integer Cells(21, 3).Value = Cells(11, 3).Value Cells(21, 5).Value = Cells(8, 4).Value Cells(21, 6).Value = Cells(7, 8).Value If Cells(7, 4).Value <> "" And Cells(7, 6).Value <> "" Then Cells(21, 8).Value = Cells(7, 4).Value Cells(21, 7).Value = 1 Cells(21, 12).Value = Cells(7, 6).Value Cells(21, 10).Value = 3 ElseIf Cells(7, 4).Value <> "" Then Cells(21, 8).Value = Cells(7, 4).Value Cells(21, 7).Value = 1 ElseIf Cells(7, 6).Value <> "" Then Cells(21, 8).Value = Cells(7, 6).Value Cells(21, 7).Value = 3 End If If Cells(7, 4).Value <> "" Then For n0 = 12 To 19 If Cells(n0, 5).Value = "" Then Exit For Else Cells(n0 + 9, 8).Value = Cells(7, 4).Value Cells(n0 + 9, 7).Value = 1 Cells(n0 + 9, 12).Value = Cells(n0, 5).Value Cells(n0 + 9, 13).Value = Cells(n0, 3).Value Cells(n0 + 9, 11).Value = "B" End If Next End If End Sub

画像

ありがとうございます!とても助かります。 早速に試してみました。 こちらの説明が足りておらず申し訳ありません。セルC11・D8・D7・F7・H7・C12・C13・C14・C15・C16・C17・C18・C19・E12・E13・E14・E15・E16・E17・E18・E19は、21行目の横一列に転記します。 例)C11に001、D7に3,000,000、D8に2022/1/25、F7に20,000、H7に3,020,000、C12に002、E12に-15,000が入力されていた場合、 C21→001、E21→2022/1/25、F21→3,020,000、G21→「1」、H21→3,000,000、K21→「3」、L21→20,000、O21→「B」、P21→-15,000、Q21→002となります。