- 締切済み
教えてください。
教えてください!前回、質問をさせていただきまして、回答をいただけて解決したのですが、今回状況が少し変わってやろうとしたのですが分かりません。ぜひお力をかして下さい。。 エクセルでマクロでの質問なんですが、ある範囲(1)(例えばB3:D10)に、名前・数量・値段を打ち込んで、ボタンを押したら決めた範囲(2)(例えばF5:H50)までの範囲に(1)内容が移動して、また新しく(1)の範囲に記入してボタンを押したら、さっき移動した内容の続き(最終セルの続きから)に移動していくようにしたいのです。つまり、(1)に内容を記入して、ボタンを押したら(2)に蓄積させていきたいのです(空白が無くつめていく)。 そして、それに付け加えて、ボタンを押したら範囲(2)(F5:H50)に移動するのと同時に、(2)に移動したあとの(E5:G50)に記入された内容(E5:E50には、あらかじめ記入していることがある)が別のシート(例:魚シート)の(B5:D50)の範囲に記入されるようにしたいのです。(魚シートに記入される内容範囲はボタンを押したときに(2)に移動する内容と同じ範囲分)つまりこの二つの動作をその一つのボタンを押したらできるようにしたいのですがよく分かりません。どうかお力をかして下さい。宜しくお願いいたします。 下に表を作ってみたので参考にしてください。 (1)B3 C3 D3 ボタン (2)E5 F5 G5 H5 魚シート B5 C5 D5 アジ 4 200 押したら 2 アジ 4 200 2 アジ 4 サバ 1 300 → 2 サバ 1 300 2 サバ 1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- fujillin
- ベストアンサー率61% (1594/2576)
回答がないみたいなので… 文章を読んでると、とってもややこしいけれど、要はコピぺすればいいだけのように見えます。 マクロの自動記録で簡単な例を作成してみれば、単純なコピぺ部分はすぐにできちゃいます。 (効率が良いかどうかは別として、ちゃんと機能するはず) そのアドレス部分を可変にするようなことを考えてあげればよろしいかと。 ちょいと面倒なのは、F5:H50へ順にペーストしてゆく判断部分だけかも。 その部分は自作になりますけれど、マクロをいじれる人ならそれほど難しいことではないはず。 でも、文面からはその判断方法などが不明なのですが… 例えば、 ・入力(B3:D10)部分には空白セルは無いのかあるのか ・あった場合、何か処理をするのか(空白行があったら詰めるとか) ・(最終セルの続きから)というのは、単に8行単位でコピペするのでよいのか あるいは、(空白行などがあるので)実際のデータの終わりの次からなのか ・(最終セルの続きから)というのはどこかの行で代表して判断できるのか あるいは、3行全部を見て判断しないとならないのか ・(F5:H50)へ(B3;D10)の8行をコピペしてゆくと、ペーストされる側が8行で 割り切れないので、最後はデータを捨ててよいのか ・そもそも、(F5:H50)がデータでいっぱいになったらどうするのか (何もしないだけでよいのか) などなど、細かいことをあげればきりがありませんが、まずはあまり気にせずざっくりと自動記録などを元に作成してみるのがよろしいかと。 いろいろきめ細かなことを行おうとすると、だんだん面倒くさく(難しく?)なってくるかも。 まぁ、上記の不明部分の答えも、文面にはないだけで質問者様にはわかっているはずですから、作成上の障害にはならないでしょう。 例えば前半の内容だけならこんな感じ?(←かなり手抜き) (* 最終行の判断をF列のEnd(xlUp)で見ていいのかも明だけれど…) Sub test() Dim r As Long r = Cells(50, 6).End(xlUp).Row + 1 If r < 5 Then r = 5 Else If r > 43 Then Exit Sub Range("B3:D10").Copy Range("F" & r) End Sub