- 締切済み
vba初心者です。どなたか教えて下さい。
独学でエクセルVBAを勉強している熟年おじさんです。 色んな参考例を見ながらヒントになる事例を探していますが、中々、似た例が見つからず 困っています。手がかりでも掴めたらと思います。どなたかご指導下さい。 同一BOOK内の2つのシートに同じ行と列に同じ項目内容が入っています。その一枚目のシートの行と列を検索して同じ行と列に該当するデータを、二枚目のシートの同じ行列のセルにコピーするのです。 それだけのことですが、もうひとつの条件は、一枚目のシートには毎日新しいデータが入ってきて その二枚目シートのデータを日単位で色分けしたいのです。従って、二枚目のシートには、日単位で 空いているセルにデータが蓄積されていき、空白セルが埋め尽くされていきます。 この場合、各シートのデータが同一セルにダブルことは絶対にありません。 一枚目シート 二枚目シート 行⇒ A B C D E F G 行⇒ A B C D E F G 列 A1 2 6 1 9 23 7 90 列A1 2 6 1 9 23 7 90 B5 11 8 18 34 67 9 34 B5 11 8 18 34 67 9 34 C9 C9 U9 U9 ・・・翌日データ追加・・・ P5 P5 上記はシートイメージですが、行は品名で列は工程名で、中のデータは測定値です。 2枚のシートには全く同じ品名と工程名が入っていて、毎日、入ってくる一枚目シートには その日のデータしか入ってきません。それを、二枚目のシートの空いたセルにコピーして いきます。データは毎日追加すのですが、同一セルにダブルことはありません。 以上よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- toshih2000
- ベストアンサー率22% (120/541)
>御親切にありがとうございます。こんなに簡単な構成でできるのですね。 >本当の初心者ですから間違っているかもしれませんが、繰り返す毎に前に入っているデータを空白セルで>上書きしてしまう心配はありませんか?データが入っているセルだけにコピーできるのですか? もちろん 単純にやったら、空白セルだろうが、データが入っていようが上書きします。 それは実情に合わせてというか、質問者の意図に合わせて、 コピーする前に判定を入れるとか必要かもしれません。 勉強中ということなので、いろいろ試行錯誤してみてください。
- toshih2000
- ベストアンサー率22% (120/541)
基本的には セルのコピーは Worksheets("二枚目のシート").Cells(a,b).Value = Worksheets("一枚目のシート").Cells(a,b).Value という感じでできますので、 for next でぐるぐるまわしてください。 ちなみに a は 行番号(1~) b は 列番号(1~) あと実情に合わせてやってみてください。
お礼
御親切にありがとうございます。こんなに簡単な構成でできるのですね。 本当の初心者ですから間違っているかもしれませんが、繰り返す毎に前に入っているデータを空白セルで上書きしてしまう心配はありませんか?データが入っているセルだけにコピーできるのですか?
お礼
ありがとうございます。 for nextでぐるぐる回す中にIf構文で「もしそのセルに数値が入っていたら(アクティブだったら)そのセルは置き換えないというようにすればいいのですね。