- 締切済み
VBA
エクセルVBAについて教えてください。 シート1 A列 B列 C列 D列 E列 F列 ・・・ 商品A 商品B 商品C 商品D・・・ 日付 名前(1) 3 2 1 日付 名前(2) 1 3 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ シート2 A列 B列 C列 D列 E列 日付 名前(1) 商品A 3 商品C 2 商品D 1 日付 名前(2) 商品B 1 商品C 3 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 上記のような、エクセルで作ったシート1があります。 これを、シート2のようにコピーしたいと思っています。 商品は20列あり、数字が入っている列と入っていない列があります。 数字が入っている列の商品と数字をコピーして、すべてコピーが 終わったら次の行のコピーしていく。 行は100ほどあります。 よろしくお願いします。
- taruto149
- お礼率100% (1/1)
- オフィス系ソフト
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kuma56
- ベストアンサー率31% (1423/4528)
>エクセルVBAについて教えてください。 (条件) >よろしくお願いします。 ハイ、それで質問点はどのような部分でしょうか? ここは、VBAの構文を代わりに作ってもらうサイトではないのはご存知ですよね? まず、VBA構文についての質問ならどの部分が分からない・うまくいかないのかはっきりさせないと、質問者のスキルすら判らない状態では、よろしくも何もないと思いますよ。 全く分からないようなら、まず基本的なことから学ばないと上手くいかないと思いますよ。 その場合はまず、"VBA"や"マクロ"等をキーワードにしてWEB検索してみてください。 それらについて解説しているサイトが見つかると思います。 そして、いきなり全部を考えるのではなく判りそうな所・出来そうな所から考えて行き、それからさらに上手くスムーズに行く方法を考えればいいと思いますよ。 今回の場合は、まずシート1の最初の日付を選んで、その行のC列~・・・・にデータが有るかさがして、有ればコピーを取り、なければ次の日付へ、とする。 コピーを取ったら、それを任意のシートに貼り付け、C列~・・・・を項目の商品A・商品B・商品C・・・と合わせた二行で縦横変換で貼り付けD列をキーにしてソートしてデータのない行を削除してC列でソートしなおしてシート2に張り付け次へ。 こんなのを繰り返せば出来そうに思えます。
関連するQ&A
- EXCEL VBAで
EXCEL VBAで シート1のA2~G2までの列にA,B,C,D~と題名があり、それぞれの下の行には数字が並んでます。シート2のA2~G2までの列にもA,B,C,D~と題名がありますが、ランダムに並んでます。シート1のAの行を、シート2のAの行に、BにはBへという風にコピーをさせるにはどのようにすればよいでしょうか。またシート1A~Gのどれかが欠けている場合もあります。その場合はシート1にあるもののみコピーすることとします。 わかりにくいかも知れませんか、どうかよろしくお願いします。
- ベストアンサー
- その他MS Office製品
- VBA,行列入れ替え挿入
初めまして、よろしくお願いします。 VBAで、シート A B C D E 1 9 2 8 3 7 4 5 を A B C D E 1 2 3 4 5 9 8 7 とC列(C1:C3)を5行目(B5:D5)へと行を挿入していくVBAを教えて頂きたく、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 【Excel VBA】重複行の削除
はじめまして。 IDの重複を削除し、日付データを横1列にまとめるVBAについてご教示いただけますと幸いです。 ------------------------------------------------------- ▼シート1(データ入力がされているシート) A B C D E F 1 ID 日付 2 1234 1/1 1/6 1/10 1/20 3 1234 2/3 2/20 4 1234 3/2 5 7777 1/10 1/15 1/20 6 7777 2/2 2/12 2/22 7 9876 2/3 ⇓ マクロ起動後 ▼シート2(重複行を削除しまとめたシート) A B C D E F G H 1 ID 日付 2 1234 1/1 1/6 1/10 1/20 2/3 2/20 3/2 3 7777 1/10 1/15 1/20 2/2 2/12 2/22 4 9876 2/3 【補足】 列情報 ・A列…ID ・B-F列…日付(左詰め) ※日付はIDごと月毎に行が変わるため、IDによって複数行存在する場合があります。 ※A列のIDは重複しない場合もあれば、4行以上ある場合があります。 ※シート1のデータはおおよそ1000-5000行です。 ※IDに対して、日付は5つあれば問題ありません。そのためG列以降の日付を削除しても支障はございません。 ------------------------------------------------------ VBAの知識があまりなく、調べて出てきたものをコピペ使用も試みたのですが、 上手く動かす事ができませんでした…。 お力添え頂けますと幸いです…。 Windows10でエクセル2016を使用しております。 何卒宜しくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- VBA 他シートを参照しているセルのコピー
お世話になります。 以下のシートがあります。 [sheet a] A B C D E 1 2004 2005 2006 2007 2008 2 =b!A2 =b!C2 =b!E2 =b!G2 =b!I2 3 10 15 16 4 11 4 12 30 20 9 2 5 =SUM(A3:A4) =SUM(B3:B4) =SUM(C3:C4) =SUM(D3:D4) =SUM(E3:E4) [sheet b] A B C D E F G H I J 2004 2005 2006 2007 2008 1 あ1 い1 う1 え1 お1 か1 き1 く1 け1 こ1 2 あ2 い2 う2 え2 お2 か2 き2 く2 け2 こ2 ・・・・・・・・・ [sheet a]F列以降に入れるデータは、VBA(マクロ)を使って、別のブックから取り出しています。 (例) F1…=E1+1(E1の数式をコピー) F3,F4…任意の値(別のブックからコピー) F5…=SUM(F3:F4)(E5の数式をコピー) 1行目,5行目の場合は左のセルをコピーして数式を貼り付けると、列が自動的に列が変わりますが、2行目の場合は元のシートを1行おきに参照しているので、単純にコピーしただけでは正しい数式が入りません。 2行目の参照をVBAで作るには、どのようにしたらいいでしょうか。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBA 特定の行を別シートへコピー・削除
下記のように、VBAで特定の行を抽出して別シートへコピーし、コピーした行については元リストデータを削除したいです。 具体的には、【出荷sheet】(C列注文番号は、出荷があった時に入力済)へ、注文番号に対応する行を【リストsheet】から抜き出してコピーし、コピー後は、【リストsheet】から該当行を削除したいです。 検索により調べてもうまく合致する回答が見当たらず困っています。 VBAの理解度は未熟ですが、何卒ご教授いただけると幸いです。 【リストsheet】 A列 B列 C列 D列 ・ ・ ・ J列 No. 日付 注文番号 品名 ・ ・ ・ ・ 1 1/1 A111 鉛筆 ・ ・ ・ ・ ←コピー後、削除 2 1/2 B222 ペン ・ ・ ・ ・ 3 1/5 C555 消しゴム・ ・ ・ ・ ←コピー後、削除 ・ ・ ⇓ 【出荷Sheet】 A列 B列 C列 D列 ・ ・ ・ J列 No. 日付 注文番号 品名 ・ ・ ・ ・ 1 1/1 A111 鉛筆 ・ ・ ・ ・ 3 1/5 C555 消しゴム・ ・ ・ ・
- ベストアンサー
- Excel(エクセル)
- Excel VBA
Excel VBAについて シート1にはデータが入ってます。 G列に日付、L列に商品名、N列に件数。 シート2には集計結果を入力したいです。 セルB2に、日付が10月1日から15日までで、商品名がAの件数の合計。 セルB3は、日付が10月16日から末日まで、セルB4は、日付が11月1日から15日までと半月毎に集計を半年後の末日まで繰返し、B2の数行下には、商品名Bの集計行を作り、その数行下には商品名Cの集計行を作りたいです。 これまでは関数SUMIFSで集計していましたが、複数店舗分のシートの更新・メンテナンスが大変なので、VBAでの集計を考えいろいろ調べてるのですが、方法が思い付かないので、ご教授ください。
- 締切済み
- Visual Basic
- Excel VBAで列ごとのデータをテキストファイルへ書くには?
エクセルのシート(たとえばSheet1)が以下のようになっているとします。 A B C D E F 1 商品A 11111111 あいうえお 3 1000 2 商品B 22222222 かくくけこ 1 2500 3 商品C 33333333 さしすせそ 2 3500 ・ ・ これを決まった列ごとにテキストファイル(固定ファイル名)に書き出すということは、エクセルのVBAで可能でしょうか? テキストファイルの内容は以下のようにしたいのです。 E列を数量として、その分だけのテキスト行を書き出したいのですが… <<bbb.txt>> 商品A 商品A 商品A 商品B 商品C 商品C ・ ・ <<ccc.txt>> 11111111 11111111 11111111 22222222 33333333 33333333 ・ ・ <<fff.txt>> 1000 1000 1000 2500 3500 3500 ・ ・ また、このようなことが参考になるHPがあればお教え願いたいのですが。 以上よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- マクロ VBA入力
シート1 A B C 1 コード コード 金額 2 01 シート2 A B C D E 1 コード 名前 コード 名前 金額 2 01 あ 02 い 20 3 01 あ 03 う 30 シート1とシート2があります。シート1のA2に入力されたコードがシート2のA列に入力されていたら、その行のC列のコードをシート1のB2に反映し、E列の金額をシート1のC2に反映する。シート1のA2のコードは、シート2のA列に複数あるため、この作業を繰り返す。 シート1 A B C 1 コード コード 金額 2 01 02 20 3 01 03 30とできるようにするにはどうすればいいでしょうか?分かりにくい文章で申し訳ありません。関数では無理なのでVBAの入力しかないかと考えていますが、VBAは全くの初心者で困っています。どなたかご回答宜しくお願いいたします。
- ベストアンサー
- Visual Basic
- VBA初心者です。
VBA初心者です。 日付順に並べたいのですが、どのようにしたらいいのでしょうか。 【エクセル】日付順に別シートに並べるやり方を教えてください。 エクセルsheet1に下記の情報があります。 B(名前) C(記号) E~H(日付) 5 ばなな a 4/2 5/3 6/6 6 みかん b 4/8 5/7 6/6 7 りんご c 5/1 6/8 7/9 ・ ・ ・ ・ 下にどんどん続きます。 sheet2 (c.5)くらいから日付、名前、記号 4/2 ばなな a 4/8 みかん b 5/1 りんご c 5/3 ばなな a 5/7 みかん b 6/6 ばなな a 6/6 みかん b 6/8 りんご c 7/9 りんご c ・ ・ ・ 下に続きます。 このようにsheet2に日付順に並べつつ、横の情報もそのまま並べたいです。 (同じ日付はあります) sheet1で日付がたて1列であればできるのですが、 横にもたくさんある中からの抽出はどうしてもできませんでした。 よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- エクセルの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サービス)
お礼
確かにそうですね。 出来そうな所から作っていきたいと思います。 アドバイスありがとうございました。