• 締切済み

EXCELのVBAで困っています。

うまくかけないので、イメージを下に書かせていただきます、。  |  A  |  B  | ---------------------- 1 | 東京   150 2 | 埼玉   150 3 | 千葉   150 4 | 群馬   120 5 | 東京   120 6 | 静岡   110   ↓  |  A  |  B  | ------------------------  | 東京 1 | 埼玉   150  | 千葉 ------------------------ 2 | 群馬   120  | 東京 ------------------------ 3 | 静岡   110 上記のような処理をVBAで行いたいのですが、どのように 書いたらよいかを、教えてください。お願いします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 以下は、シート2に書き出すように作られています。 Sub TestStandarizing()   Dim objDic As Object ' New Dictionary   Dim c As Variant   Dim i As Long   Set objDic = CreateObject("Scripting.Dictionary")   For Each c In Range("A1", Range("A65536").End(xlUp))     If VarType(c.Offset(, 1).Value) Or vbDouble = vbDouble Then       If objDic.Exists(c.Offset(, 1).Value) Then         objDic.Item(c.Offset(, 1).Value) = _         objDic.Item(c.Offset(, 1).Value) & vbLf & c.Value       Else         objDic.Add c.Offset(, 1).Value, c.Value       End If     End If   Next c      i = objDic.Count   'シート2への書き出し(本来はループで可)   Worksheets("Sheet2").Range("A1").Resize(i).Value = _     WorksheetFunction.Transpose(objDic.Items)   Worksheets("Sheet2").Range("B1").Resize(i).Value = _     WorksheetFunction.Transpose(objDic.Keys)   Set objDic = Nothing End Sub

関連するQ&A

  • エクセルVBA でセルの結合

    久しぶりに質問したいことがあります。 初歩的なVBA操作しかできない者です。 以下のようなマクロを組みたいのですがどのようにしたらよいでしょうか?      A       B         C 1   東京 2   東京 3   京都 4   京都 5   京都 6   埼玉 7   埼玉 ・   ・ ・   ・ ・   ・ 上の状態から下のようにしたい     A        B        C   -------- 1    東京 2   --------  3 4  京都 5    -------- 6    埼玉 7   -------- ・   ・ ・   ・ ・   ・ (最終行は任意) B列で同じ項目名のセルを結合したいです。 B列は名前順に並び替えられていて、1~10行ぐらいで同じ項目名があり行数は共に任意です。 なおイメージ図の「------」はセル結合のイメージですので、実際には 実践で囲います。 分かりづらし説明で申し訳ありませんがよろしくお願いします。

  • エクセル 重複する文字列からピックアップしたい

    A列に県名が並んでいます。 B列にA列の中で重複している物に上から番号を振りました。  B1=IF(A1="","",A1&COUNTIF($A$1:A1,A1)) C列に末尾に1とあるものだけをピックアップしました。  C1=IF(COUNTIF(B1,"*1"),(LEFT(B1,LEN(B1)-1)),"") ですが、21、31もピックアップされてしまいます。当然ですが・・・。 県名を一種類ずつピックアップするにはどのようにしたら良いですか?    A B C _______________________________________________ 1 | 東京    東京1   東京 2 | 神奈川  神奈川1  神奈川 3 | 千葉    千葉1   千葉 4 | 神奈川  神奈川2 5 | 埼玉    埼玉1   埼玉 6 | 東京    東京2 7 | 群馬    群馬1   群馬   21| 東京    東京21 東京2 22| 神奈川  神奈川31  神奈川3 23| 東京    東京22 24| 東京    東京23

  • エクセルでの並び替え集計

    初めまして。 仕事で下記のような集計表をエクセルで作っているのですが、 日々の処理を早めたいので、このようなことは出来ますでしょうか? 分類  店名  ポイント ランク A   埼玉   6    1 B   東京   5    2 C   静岡   3    4 B   横浜   1    5 A   千葉   4    3 という、集計表があります。 ポイントは毎日変わるため、ランクも変わります。 ランクはRANK関数で出来ました。 別シートに、下記のような表を毎日ソートして 作っているのですが、自動で出来るようにしたいのです。 完成形イメージは下記です。 分類  店名  ポイント ランク A   埼玉   6    1 B   東京   5    2 A   千葉   4    3 C   静岡   3    4 B   横浜   1    5 という形で、ランキング毎に並び変え ポイントが変更される度に、自動的に 店名や分類も同時に入れ替わるようにしたいのです。 非常に分かりずらいですが、 なにとぞよろしくお願い致します。

  • 【VBA】オートフィルタで抽出した内容を隣のセルにコピーする方法

    A列   B列 1       都道府県 2       神奈川 3       神奈川 4       埼玉 5       東京 6       千葉 7       東京 8       神奈川 9       東京 1行目にオートフィルタを使用してB列から東京だけを抽出。 A列   B列 1       都道府県 5       東京 7       東京 9       東京 B列の内容を隣のセルにコピー。 A列   B列 1       都道府県 5東京       東京 7東京       東京 9東京       東京 このような処理をVBAで行うにはどうしたらいいでしょうか? 可視セルを他シートに貼り付ける処理は分かりましたが、同シート内での処理が分かりません。 宜しくお願いします。

  • エクセルの関数

    A列に都道府県名、B列に人数が記入されているデータがあります。 尚、A列の都道府県名は重複があります。 別セルに都道府県ごとの総人数を関数にて求めたいのですが、どのような式を使えば良いでしょうか? 例) 千葉  1 千葉  5 千葉  1 東京  0 東京  1 埼玉  4 埼玉  9 埼玉  2 埼玉  0 埼玉  6 埼玉  4 ↓ 千葉7 東京1 埼玉25

  • Excel 連結

    表に 東京 神奈川 千葉 埼玉 茨城 栃木 群馬 1     1     1                1          1            1 1                   1 とはいって 1行目 東京,神奈川,千葉 2行目 神奈川,埼玉,群馬 3行目 東京,茨城 と1が立っているとこを間にカンマを入れて連結したいです。 Excelの関数かマクロでお願いします。

  • エクセルである表を作成したいのですが、、、

    エクセルで、  例えば、A1に  「関東」 と入力すると、B1からB7までに茨城、栃木、群馬、千葉、埼玉、東京、神奈川」と自動的に表示され、 同じようにA1に  「東北」と入力すると、B1からB6に青森、秋田、岩手、宮城、山形、福島と、表示される方法はないでしょうか。

  • エクセルの重複データを削除したい

    エクセルの重複データを削除したいです。重複項目を一つにまとめるのではなく、重複があれば、その項目を全て削除したいです。 シート処理前 ------------ 東京都 神奈川県 千葉県 埼玉県 群馬県 東京都 神奈川県 ------------ これを重複処理します。東京都と神奈川県が重複しているので削除します。 シート処理後 ------------ 千葉県 埼玉県 群馬県 ------------ このような処理をどうしても行いたいです。 実際のデータは1万件以上あり、手動では不可能でした。 どうかお知恵をお貸し頂けませんでしょうか?

  • excel VBA

    質問します。 excel VBAで aの値が0でbの値ガ0のとき 処理1 aの値が0でbの値ガ1のとき 処理2 aの値が0でbの値ガ2のとき 処理3 aの値が1でbの値ガ0のとき 処理4 aの値が1でbの値ガ1のとき 処理5 aの値が1でbの値ガ2のとき 処理6 aの値が2でbの値ガ0のとき 処理7 aの値が2でbの値ガ1のとき 処理8 aの値が2でbの値ガ2のとき 処理9 これはどのように記述したらいいのでしょうか。

  • ある列のリアルタイム数値を3分毎に列をずらしながら記録するEXCELマクロを作りたい

    EXECL2002 SP3を使っています。 B2からB99まで数式が入力されています。 この数式の結果はリアルタイムで変わります。 このリアルタイムデータを、 記録するマクロを作成したいと考えています。 9時1分から20時1分まで3分毎にデータを取得し、 C列、D列、E列、と列をずらしながら記録していきます。 以下のようなイメージになります。 ☆数式の状態     A   B 1        =now 2    東京  =tokyo.temperature 3    千葉  =kanagawa.temperature 4    埼玉  =saitama.temperature ☆9時1分のシートの状態     A   B   C 1        9:01  9:01 2    東京  11.5  11.5 3    千葉  11.9  11.9 4    埼玉  10.8  10.8 ☆9時4分のシートの状態     A   B   C   D 1        9:04  9:01  9:04 2    東京  11.6  11.5  11.6 3    千葉  12.1  11.9  12.1 4    埼玉  11.0  10.8  11.0 ☆9時7分のシートの状態     A   B   C   D   E 1        9:07  9:01  9:04  9:07 2    東京  11.8  11.5  11.6  11.8 3    千葉  12.4  11.9  12.1  12.4 4    埼玉  11.1  10.8  11.0  11.1 上記の作業を実現できるマクロを 教えていただけませんでしょうか。 よろしくお願いいたします。

専門家に質問してみよう