• 締切済み

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枚のシートには全く同じ品名と工程名が入っていて、毎日、入ってくる一枚目シートには    その日のデータしか入ってきません。それを、二枚目のシートの空いたセルにコピーして    いきます。データは毎日追加すのですが、同一セルにダブルことはありません。    以上よろしくお願いします。

みんなの回答

回答No.2

>御親切にありがとうございます。こんなに簡単な構成でできるのですね。 >本当の初心者ですから間違っているかもしれませんが、繰り返す毎に前に入っているデータを空白セルで>上書きしてしまう心配はありませんか?データが入っているセルだけにコピーできるのですか? もちろん 単純にやったら、空白セルだろうが、データが入っていようが上書きします。 それは実情に合わせてというか、質問者の意図に合わせて、 コピーする前に判定を入れるとか必要かもしれません。 勉強中ということなので、いろいろ試行錯誤してみてください。

rhc03404
質問者

お礼

ありがとうございます。 for nextでぐるぐる回す中にIf構文で「もしそのセルに数値が入っていたら(アクティブだったら)そのセルは置き換えないというようにすればいいのですね。

回答No.1

基本的には セルのコピーは Worksheets("二枚目のシート").Cells(a,b).Value = Worksheets("一枚目のシート").Cells(a,b).Value という感じでできますので、 for next でぐるぐるまわしてください。 ちなみに a は 行番号(1~) b は 列番号(1~) あと実情に合わせてやってみてください。

rhc03404
質問者

お礼

御親切にありがとうございます。こんなに簡単な構成でできるのですね。 本当の初心者ですから間違っているかもしれませんが、繰り返す毎に前に入っているデータを空白セルで上書きしてしまう心配はありませんか?データが入っているセルだけにコピーできるのですか?

関連するQ&A