- 締切済み
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枚のシートには全く同じ品名と工程名が入っていて、毎日、入ってくる一枚目シートには その日のデータしか入ってきません。それを、二枚目のシートの空いたセルにコピーして いきます。データは毎日追加すのですが、同一セルにダブルことはありません。 以上よろしくお願いします。
- rhc03404
- お礼率100% (2/2)
- Visual Basic
- 回答数2
- ありがとう数3
- みんなの回答 (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~) あと実情に合わせてやってみてください。
お礼
御親切にありがとうございます。こんなに簡単な構成でできるのですね。 本当の初心者ですから間違っているかもしれませんが、繰り返す毎に前に入っているデータを空白セルで上書きしてしまう心配はありませんか?データが入っているセルだけにコピーできるのですか?
関連するQ&A
- エクセル 合計条件が行と列の時の計算式
エクセルで、データがはいっている”データシート”と 合計を表示させたい”合計シート”があり、 合計シートに同じ番号の品名でおなじ日付のものを合計して 表示させたいと思っています。 データシートには、以下のように品名が同じものが複数はいっています A列 B列 C列 D列・・・・Z列これからさらにデータが増えていきます 1行目品名 4/1 4/4 4/5 2行目Z100 10 20 30 3行目Z300 40 50 60 4行目Z100 11 22 33 5行目Z200 70 80 90 ・ ・ 200行くらいデータがありこれからさらにデータが増えていきます。 合計シートもデータシートと同じような形で データシートのA列の 同じ番号&同じ日付 の数字をそれぞれセルB2からZ200まで合計した 数字を表示させたいです。 A列 B列 C列 D列・・・・Z列 1行目 4/1 4/4 4/5 2行目Z100 21 42 63 3行目Z300 40 50 60 4行目Z200 70 80 90 ・ ・ 200行目 合計シートのB2セルに入力したのですが、#VALUEエラーがでてしまい ました。 =SUMPRODUCT((データシート'!$A$2:$A$500=合計シート!$A2)*(データシート'!$B$1:$Z$1,合計シート!$B1)) SUMIFでも試してみたのですが、エラーがでてしましました。 説明が分かりにくく申し訳ないですが、どなたか分かる方いらしたら 教えてください。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルのVBAで教えてください(初心者)
シート1とシート2があり、シート1には、データが何行か(不特定)あり、シート2の方に必要な列(下記の場合はA、D、E)だけ、コピーをする方法を教えてください。宜しくお願いします。 シート1 (何行あるかわからない) A B C D E 1 ○ ◆ ◇ × ● 2 △ ◎ △ ▲ X 3 ▽ 1 5 V a 4 2 ¥ ■ 〒 ← ↓ 10 ★ □ ▼ % ☆ シート2(B.C列は不要) A D E 1 ○ × ● 2 △ ▲ X 3 ▽ V a 4 2 〒 ← ↓ 10 ★ % ☆
- ベストアンサー
- その他(インターネット・Webサービス)
- VBAによる在庫管理について
Sheet1のA1セルからE1セルまで「品名」、「単価」、「単位」、「在庫数量」、「備考欄」が記入されております。10000品目の在庫管理に使用しております。 Sheet2においてinputboxを使用し品名を入れるとSheet1のA1セルを起点とした表のA列「品名」から部分一致で検索し、検索結果のA列からE列までのデータをSheet3に表示するという構文を教えていただけると幸いです。 宜しくお願い致します。
- ベストアンサー
- Visual Basic
- データのリンク
こんばんは、教えて下さい EXCEL2003を使っています。shee1はA5:A8 , B5:B8 , C5:C8の結合セルが4行単位で, A列、B列、C列2400行まで続いています。 sheet2には、下記のような型で沢山のデータがあります A2 A-1-1 (sheet1! A5:A8結合セル) B2 A-B-1(sheet1! B5:B8結合セル) A3 A-2-2 (sheet1! A9:A12結合セル) B3 A-B-2(sheet1! B9:B12結合セル) A4 A-3-3 (sheet1!A13:A16結合セル) B4 A-B-3(sheet1!B13:B16結合セル) sheet2 A,B,C列のデータを、shee1結合セルに旨くデータリンクを掛けたい
- ベストアンサー
- その他MS Office製品
- Excelの関数に関して教えて下さい
パソコンはWindos98です。 ExcelのAシートに A列 B列 C列 D列 (品名) (ロット) (容量) (数量) 1行 みかん 123 100g 3 2行 りんご 456 100g 4 3行 ピーチ 789 120g 2 とある場合に新たなBシートの A1のセルに「りんご」と入力した場合に A1 品名 A2 ロット A3 容量 A4 数量 Aシートの2行目のデータをBシートのそれぞれの欄に 自動的に入るという関数はありますでしょうか? ちなみにAシートのりんごのデータは2行目にくるか 3行目にくるかは分からないのでどこの行に入力しても Bシートに反映されるというようにしたいのです。 補足もしますのでどうか宜しくお願いします。
- ベストアンサー
- その他(ソフトウェア)
- EXCEL VBAで複数のシートの中から該当値を検索する方法について
すいません、EXCEL VBAで複数のシートの中から該当する値を検索する方法について教えていただきたいことがあります。 Sheet1 A列 B列 C列 1行 11 りんご 31 2行 12 バナナ 32 3行 13 みかん 33 4行 14 ぶどう 34 ・ ・ ・ ・ Sheet2 A列 B列 C列 1行 31 すいか 11 2行 32 レモン 12 3行 33 パイン 13 4行 34 ざくろ 14 ・ ・ ・ ・ というデータが入っているブックについて 「全部のシートを検索し、A列に11の値が入っているセルの行数及びその行のB列の値」 をSheet1のD1セルとE1セルにそれぞれ返す方法はどうしたらよろしいんでしょうか。 For Each を使うのではないかと思って色々やってみたのですが、どうも上手く作動してくれません。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- ExcelのVBAで、条件でセルに色付けしたい
VBは超初心者です。どなたか教えてください。 データをシートに貼り付けた後の処理で、あるセルの値を判断して その行(範囲あり)を灰色に塗りつぶしたいのです。 よろしくお願いします。 例えば、A列のセルに"B"の文字が入っていたら "10B"の行(A2からC2)が灰色に。 A列 B列 C列 10A 1000 あさん 10B 1500 いさん 20A 300 うさん
- 締切済み
- その他([技術者向] コンピューター)
- VBAの操作
↓の事を行いていのでうまくいきません。 アドバイスをお願いできませんか? 変更前(Sheet1); (A列) (B列) 1 ABC010 Data_010 2 ABC020 (同上) 'B1-B2は結合セル 3 ABC030 Data_020 4 ABC040 (同上) 'B3-B4は結合セル . . 変更後(Sheet2); (A列) (B列) 1 ABC010 "OK" 2 ABC020 "OK" 3 Data_010 "Comp" '追加行 4 ABC030 "OK" 5 ABC040 "OK" 6 Data_020 "Comp" '追加行 . . Sheet1(B列)に値があれば、 Sheet2(A列)に結合セルの単位で値をコピーする。 Sheet2(B列)には"OK"コメント その都度、必ず最後に行追加して結合セルの値、"Comp"コメントをコピーする. 現象は毎行、追加行が挿入されてしまいます。 Sub testVBA() Dim i Worksheets("Sheet1").Range("A:B").Copy With Worksheets("Sheet2") .Range("A1").PasteSpecial For i = 1 To 1000 If .Cells(i, 2) <> "" Then .Cells(i + 1, 1) = .Cells(i, 2) .Cells(i + 1, 2) = "Comp" .Cells(i, 2) = "OK" End If Next i End With End Sub
- ベストアンサー
- Visual Basic
- "VBAの繰り返し"についてお尋ねします。VBA初心者です。
"VBAの繰り返し"についてお尋ねします。VBA初心者です。 例えば「A列の最後のセルに何か入れば、その行のB列、C列・・・の一つ上のセルに入っている計算式を繰り返しコピーする」と言うコードを教えていただけたらと思います。A列の最後のセルに何か入ってくれば、その行の一つ上のセルに入っている計算式を繰り返しコピーするというコードです。コード記述の例を教えていただけたらと思います。よろしくお願いします。
- ベストアンサー
- Visual Basic
- vbaにて並べ替えしたい。
並べ替えするには? ただいまVBA学習中です。 sheet1に次のような文字列がセルに入力されているとします。 3列で30行あります。 A列 B列 C列 1行 あ い う 2行 え お か ...以下30行まで続く。 これらを sheet2に A列 あ い う え お か のようにひとつの列へ縦にするにはどのような記述になりますか? 私なりの考え方ですが セルのスタート位置はシート1のA1とします。 シート1にて ・あ い う と順番に配列に格納 ・セルを左に2つ下に1つ移動 この動作を30回繰り返す(for next 使えばでいいですよね?) シート2に移動してA1から下方向へ 格納された文字列を入力する。 と、考えてみたものの記述の仕方がわかりません。 力貸してください。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございます。 for nextでぐるぐる回す中にIf構文で「もしそのセルに数値が入っていたら(アクティブだったら)そのセルは置き換えないというようにすればいいのですね。