みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

マクロの修正について

マクロの修正について教えてください!

ある文書を作成するのに必要なマクロのシートがあります。
抽出元の表を一部修正したため、現在のマクロでは正しく抽出されず、修正しています。

下記に詳細一部コピーしますが、これで抽出すると、同じデータが何度か繰り返し抽出され、重複してしまいます。

マクロの知識が全くなく、修正しているので、お力貸していただけると幸いです。


Application.ScreenUpdating = False
'●●書 作成
Sheets("テンプレート").Select
Sheets("テンプレート").Copy After:=Sheets(1)
ActiveSheet.Name = "●●書"

Sheets("まとめ").Select
OutPutRow = 19
OutPutSheetCount = 1
'D列で最終行を確認
LastRow = Cells(1, 4).End(xlDown).Row

For Row = 2 To LastRow
datacount = Cells(Row, 27).Value
For i = 1 To datacount
If Cells(Row, 28 + (i - 1) * 7).Value <> "" Then
'△データがあれば▲情報も出力
(1) = Cells(Row, 11).Value '代理店
(2) = Cells(Row, 26 + (i - 1) * 7).Value 'A
(3) = Cells(Row, 5).Value 'B
(4) = Cells(Row, 6).Value 'C
(5) = Cells(Row, 25 + (i - 1) * 7).Value 'D
(6) = Cells(Row, 18).Value 'E
(7) = Cells(Row, 4).Value 'F
(8) = Cells(Row, 10).Value 'G
(9) = Cells(Row, 27 + (i - 1) * 7).Value 'H
(10) = Cells(Row, 30 + (i - 1) * 7).Value 'I
(11) = Cells(Row, 31 + (i - 1) * 7).Value 'J
End If
Sheets("●●書").Select
Cells(OutPutRow, 2).Value = (11)
Cells(OutPutRow + 1, 2).Value = (1)
Cells(OutPutRow, 3).Value = (2)
Cells(OutPutRow + 1, 3).Value = (3)
Cells(OutPutRow, 4).Value = (5)
Cells(OutPutRow + 1, 4).Value = (4)
Cells(OutPutRow + 1, 5).Value = (6)
Cells(OutPutRow, 6).Value = (7)
Cells(OutPutRow + 1, 6).Value = (8)
Cells(OutPutRow + 1, 7).Value = (9)
Cells(OutPutRow + 1, 8).Value = (10)
OutPutRow = OutPutRow + 2

投稿日時 - 2011-01-28 09:29:00

QNo.6480420

すぐに回答ほしいです

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

For分が2つありますが、

For Row = 2 To LastRow
For i = 1 To datacount

これらに対して、明示的なFor文の終わりを占めるNextが
ないです。

Next ii
Next Row

をそれぞれのFor文の終わりにいれてみてください。

それ以外はこの質問文のみでは全てを読み解くのは無理です。
(具体的に何が問題なのかがわからない)

投稿日時 - 2011-01-28 11:42:35

お礼

ありがとうございました。解決しました。

ご回答いただいたNextは入力しなかったのですが、
For~Nextという決まり(?)があることからヒントを得て、
修正できました。

勉強になりました。

投稿日時 - 2011-01-28 15:06:34

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

マクロのコードをずらっと書かれただけでは、よほど想像力の豊かな人じゃない限り、解りませんよ。

シート「まとめ」やシート「●●書」がどんなレイアウトなのか。
どのシートのどの部分をどのように修正したらマクロがまともに動かなくなったのか。
どのように動作して欲しい(動作すべき)なのに、どのようになってしまうのか。

これらを明示しましょう。

投稿日時 - 2011-01-28 10:52:49

補足

知識がなく、申し訳ありませんでした。

「まとめ」のデータを「●●書」に抽出します。

シート「まとめ」は、1行目項目名が並び、2行目以降に各項目のデータ(A、B、C・・・)が入力されています。
顧客データの抽出なので、2行目に顧客A様、3行目に顧客B様という感じです。

シート「●●書」はいわば伝票で、その伝票の形式に合わせて必要なAやBのデータを抽出しています。

正しいデータが抽出できてはいるのですが、顧客のデータが連続(3回や4回)で入力されることがあります。
顧客A、顧客A、顧客A、顧客B、顧客B、顧客C・・・というように。

ごめんなさい、これでわかりますでしょうか?

投稿日時 - 2011-01-28 11:52:43

お礼

ご指摘いただき、ありがとうございました!
ヒントを頂いてなんとか解決できました。

投稿日時 - 2011-01-28 15:01:56

あなたにオススメの質問