Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
行をコピーして挿入
投稿日時: 20/08/29 21:40:00
投稿者: uekun

コード   銘柄   数量A  件数  数量1  数量2  数量3
123  AAA   1000   2   400   600
234  BBB   2000   1   2000
345  CCC   3000   3   500   1000   1500
 
上記のような表があります。
件数の数によって、行数を増やし数量Aの数字を、数量1〜3に変更したいです。
コード123は件数が2件なので、1行下に追加し、元のデータの数量Aを400に、追加した行の数量Aを600に。
コード234は件数が1件なのでそのまま。
コード345は件数が3件なので、2行下に追加し、元のデータの数量Aを500に、追加した行の数量Aを1000と1500に。
 
よろしくお願いします。

回答
投稿日時: 20/08/29 22:20:50
投稿者: WinArrow
投稿者のウェブサイトに移動

ここで説明している操作(作業)をマクロ化するということでしょうか?
 
そもそも、マクロ化する
ってことは、同じ操作を繰り返し実施する場合に、有効な手段です。
 
今回の操作は、1回のみの操作と思われます。
1回目の操作と2回目の操作が、指定行も違うし、セルの値も違いますよね?
 
つまり、マクロ化する効果(意味)がない・・・・ということになりませんか?
 
 

投稿日時: 20/08/29 22:26:15
投稿者: uekun

はい。マクロ化したいです。
 
サンプルの表ですが、顧客ごとに表が異なります。
そのため、自動でできたらと思ってます。

回答
投稿日時: 20/08/30 10:39:03
投稿者: WinArrow
投稿者のウェブサイトに移動

行をコピーして〜〜〜
というよりは、別シートに
新しいデータを作成したほうがよいと思います。
元データを書き換えてしまうと、検証が難しくなることがあります。
また、行挿入は上からではなく、下から処理するのが常套なので、
見た目のイメージでは、行を上がったり、下がったりすることになり
コードもそれなりの工夫をしないとわかりにくくなります。
 
ここまで、アドバイス
 
現状のままでは、コード作成依頼となってしまいます。
上記が参考になるならば、操作をしながらコード記録をとり、
自分なりにチャレンジしてみましょう。

回答
投稿日時: 20/08/31 10:55:37
投稿者: WinArrow
投稿者のウェブサイトに移動

前レスで「コード記録」と書きましたが、「マクロの記録」です。
 
別シートに書き出す方式は、「マクロの記録」で作成可能はコードはセルの複写だけです。
今回の処理は二重ループを必要としますが、
「マクロの記録」では、ループは記録できません。
 
ヒントだけ提供します
 
元シート側で2行目から最終行まで、次の処理1を繰り返します。
 
処理1
元シートの件数の値だけ、次の処理2を繰り返します。
 
 
処理2
元シートのセルを複写左記シートに複写します。
複写側:セルA→複写先:セルA
複写側:セルB→複写先:セルB
複写側:セルE〜G→複写先:セルC
 
 

投稿日時: 20/09/03 20:57:27
投稿者: uekun

ヒントありがとうございました。
 
なんとか、出来上がりました。