- 締切済み
VBAについて
watabe007の回答
- watabe007
- ベストアンサー率62% (476/760)
参考に Sub Test() Dim myDic As Object, v As Variant Dim NAMAE As String, BUNRUI As String Dim KAZU As Long, i As Long With Worksheets("Aシート") v = .Range("A2", .Cells(Rows.Count, "A").End(xlUp)).Resize(, 2).Value End With Set myDic = CreateObject("Scripting.Dictionary") For i = 1 To UBound(v) NAMAE = v(i, 1) KAZU = v(i, 2) Select Case True Case NAMAE Like "*ジュース" BUNRUI = "ジュース" Case NAMAE Like "*牛乳" BUNRUI = "牛乳" Case Else BUNRUI = NAMAE End Select myDic(BUNRUI) = myDic(BUNRUI) + KAZU Next With Worksheets("Bシート") .Range("A1:B1").Value = Array("名前", "数量") .Range("A2").Resize(myDic.Count, 2).Value = _ Application.Transpose(Array(myDic.Keys, myDic.Items)) End With Set myDic = Nothing End Sub
関連するQ&A
- エクセルで表の相違確認をVBAでしたい。
お世話になっております。 下記の様な表がシート1とシート2に有、 シート2がシート1と比較して、行が多かったり、または 数量だけが変わっていたり、行が減っていたり、 表の行数は100から200行くらいあるので、VBAでどこが 違うかをすぐ分かる様に確認したいと思っています。 下記の表はあくまでも例ですが、実際は同じNO・同じ品番・同じ品名・同じ数量で複数行あったりします。 どの様に記述していいか分からなく、ご教示下さいます様宜しくお願い致します。 記 A列 B列 C列 D列 E列 No 品番 品名 地区 数量 236 A6TET みかん 市川 3本 248 A7TGR りんご 松戸 5本 273 B9GKT ぶどう 柏 14本 273 A8UFE すいか 行徳 6本 381 C2ROF いちご 平井 22本
- ベストアンサー
- 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
- Excel,VBA シートの自動作成、データ
Sheet 1 に住所録 Sheet 2~50までに同じフォーマットで A B C~E F~H No. 名前 S~L S~L と並んでいてA4から名前 C~の列には各数量が50行ほど入力されています。 Sheet 2~50 までを名前ごとにまとめたSheet を自動で作成したいです。 Sheet1とSheet2~50の名前順は同じです。 例 Sheet51 シート名 Aさん DEF列 SML 1行目1,2,3(Sheet2AさんのC~E数量) 2行目2,2,2(Sheet2AさんのF~G数量) 3行目2,2,2(Sheet3AさんのC~E数量) 4行目4,4,4(Sheet3AさんのF~G数量) 同じようにSheet 53 Bさん となるようにループする方法をご教授ください。 よろしくお願い致します。
- 締切済み
- Visual Basic
- エクセル 複数条件 VBA
VBAと関数の両方を教えていただきたいです。 シート”DATA”に以下の入力フォームがあります。 A列には日付 B1には”りんご”、B2以降には数量 C1には”みかん”、C2以降には数量 D1には”なし”、D2以降には数量 シート”照会”に以下の照会画面があります。 B1には開始日、D1には終了日 A2には”りんご” A3には”みかん” A4には”なし” B2以降はそれぞれの開始日から終了日までの個数が入るようにしたいのです。 例えば、シート”DATA”に毎日10が入力されていて、シート”照会”のB1に1/1、D1に1/3と入力されたら30、B1はそのままでD1が1/10なら100と果物ごとに表示されるようにしたいのですが、どうすればよいでしょうか。 よろしくお願い致します。
- ベストアンサー
- Excel(エクセル)
- Excel で別シート内の項目にフィットした値を元のシートに返すという関数
Excel で別シート内の項目にフィットした値を 元のシートの指定したセルに返すという関数を教えてください。 【例】 Sheet1に下記のような値がある A1:バナナ B1:152 A2:牛乳 B2:200 A3:りんご B3:180 Sheet2のA1に【牛乳】と入力した際にB1へSheet1内のA列の値と フィットした場合のB列の値(この場合牛乳だから【200】)を返す というような関数を以前使ったことがあるのですが、 忘れてしまったため ご存知の方、教えて下さい。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- データシートから他のシートへ抽出
元データ:(2)データシート 抽出シート:(6)抽出シート (2)データシートには、 B C D E F G・・・・・・P 4 (項目) (内容) (数量) (単位) (単価) (金額) (仕入先) 5 りんご 果物 1 個 100 100 A商店 6 みかん 果物 2 個 100 200 B商店 7 ジュース 飲料 3 本 100 300 A商店 8 牛乳 飲料 2 本 100 200 A商店 ・ ・ ・ とあります。 これを(6)抽出シートのA3セルに仕入先名を入れることで、 (6)抽出シート A B C D E F G 3 A商店 ・ ・ 21 (項目) (内容) (数量)(単位)(単価)(金額) 22 りんご 果物 1 個 100 100 23 ジュース 飲料 3 本 100 300 24 牛乳 飲料 2 本 100 200 ・ ・ ・ 上記の様にB22(項目)、C22(内容)、D22(数量)等を抽出したいのですが、VLOOKUPを使ってもりんごのみを何件も抽出したりで困ってます。 ちなみに(6)抽出シートはある程度の雛形が決まっています。 何かいい方法はありますでしょうか。 どうぞご教授宜しくお願い致します。 図が変になってしまってすいません。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAの貼付けについて
エクセルVBAの貼付けについて シートAとBがあって、シートBの1~7列をコピーし、シートAの最終行に貼り付ける方法を教えて下さい。 下記のように書いてみたのですがダメでした。 Sheets("B").Select Rows("1:7").Select Selection.Copy Sheets("A").Select With Range("A1").End(xlDown).Offset(1, 0) .ActiveSheet.Paste End With
- ベストアンサー
- その他(プログラミング・開発)
- VBAで、ある文字の列を他のシートにコピーしたい時
名称 /数量 /種類 りんご /1 /食べ物 自動車 /2 /乗り物 a /3 /アルファベット バナナ /4 /食べ物 消防車 /6 /乗り物 b /5 /アルファベット 上記の様な表で種類の列を基準に、「食べ物」のある行だけ集めて別のシートにコピーして、「乗り物」のある行だけ集めて別のシートにするということはできますか? 下記のように考えてみましたが上手くいきませんでした。 質問内容が上手く説明ができないため 分かりづらいかもしれませんが、 もし、お分かりになりましたら教えてください。 ------------------------------ Sub test2() Dim i As Long For i = 2 To 7 Select Case Cells(i, 3).Value Case "食べ物" Rows(i).Select Selection.Copy Sheets("食べ物").Select Rows(i).Select ActiveSheet.Paste Case "乗り物" Rows(i).Select Selection.Copy Sheets("乗り物").Select Rows(i).Select ActiveSheet.Paste Case Else Rows(i).Select Selection.Copy Sheets("その他").Select Rows(i).Select ActiveSheet.Paste End Select Next End Sub
- ベストアンサー
- オフィス系ソフト
- 【エクセル】リストと一致するデータを抽出し、文字に色をつけることは可能でしょうか?
エクセルで作成したファイルの【シート1:表】に様々なデータを打ち込んでおり、【シート2:リスト】にはリスト一覧を入れています。 シート1の表で、リストと該当する文字列だけに色をつけることは可能でしょうか。表はこのような感じです。 【表】 A列 B列 1 りんご apple 2 りんごを食べる eat an apple 3 みかん orange 4 みかんを買う get an orange 【リスト】 A列 B列 1 りんご apple 2 みかん orange このような表なのですが、例えば、1行目、3行目はリストと同じなので赤い文字で表示し、A2のセルの「りんごを食べる」の「りんご」とB2セルの「eat an apple」の「apple」、またA4セルの「みかんを買う」の「みかん」と「get an orange」の「orange」の文字列だけを赤字にするようなことは可能でしょうか。 少量のデータなら手作業で変更できるのですが、データが大量にあるため手作業では追いつかず困っています。どなたかご存知の方がいらっしゃいましたら、よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセル VLOOKUP うまくできない
シート1のA列に りんご みかん いちご シート2のA列に名前、B列に金額 りんご 100 みかん 200 いちご 300 と入力しています。 シート2から同じ名前の金額を探し出し シート1のB列に入力したいのですが うまくいきません。 シート1のB列に =VLOOKUP(A1,シート2!$A$1:$B$3,2) とし、下までオートフィルしました。 しかしシート1の結果は りんご 300 みかん 200 いちご #N/A となります。 シート1にも、りんごが100としたいのですが どうすればいいでしょうか? よろしくお願いします。 (図はシート1です)
- ベストアンサー
- オフィス系ソフト