教えて頂ければと投稿しました。
・・C・・D・・E・・F・・G・・H
3・abc・・・15・・・20・・・・・・・・・・・・・・・
4・def・・・10・・・10・・abc・・・15・・・10
5・ghi・・・・5・・・・5・・・・・・・・・・・・・・・・・
6・jkl・・・・8・・・・30・・ghi・・・・1・・・・5
以下続く
このような表があった場合に、C行とF行が同じ値のものを横並べにして、D行、E行はそのまま横並び、G行、H行もそのまま横並びにして表を完成させたいです。このようなマクロをご教示して頂きたくよろしくお願いいたします。
完成型
・・C・・D・・E・・F・・G・・H
3・abc・・・15・・・20・・abc・・・15・・・10
4・def・・・10・・・10・・・・・・・・・・・・・・・
5・ghi・・・・5・・・・5・・・ghi・・・・1・・・・5
6・jkl・・・・8・・・・30・・・・・・・・・・・・・・・・
以下続く
No.1ベストアンサー
- 回答日時:
以下のマクロを標準モジュールに登録してください。
Option Explicit
Public Sub 並べ替え()
Dim dicT As Object
Dim dicR As Object
Dim ws As Worksheet
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim arr As Variant
Dim wrow As Long
Dim srow As Long
Dim key As Variant
Set dicT = CreateObject("Scripting.Dictionary")
Set dicR = CreateObject("Scripting.Dictionary")
Set ws = ActiveSheet
maxrow1 = ws.Cells(Rows.Count, "C").End(xlUp).Row
maxrow2 = ws.Cells(Rows.Count, "F").End(xlUp).Row
arr = ws.Range("F1:H" & maxrow2)
For wrow = 3 To maxrow2
key = ws.Cells(wrow, "F").Value
If key <> "" Then
If dicT.exists(key) = False Then
dicT(key) = wrow
End If
End If
Next
For wrow = 3 To maxrow1
key = ws.Cells(wrow, "C").Value
If dicT.exists(key) = True Then
srow = dicT(key)
ws.Cells(wrow, "F").Value = key
ws.Cells(wrow, "G").Value = arr(srow, 2)
ws.Cells(wrow, "H").Value = arr(srow, 2)
dicR(wrow) = True
If dicR.exists(srow) = False Then
ws.Cells(srow, "F").Resize(1, 3).ClearContents
End If
End If
Next
MsgBox ("完了")
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELで同一セル内で自動的に改行されてしまう(難問) 6 2023/04/16 00:51
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- UNIX・Linux bashでシングルクォート内の変数の組み込み方教えてください。 2 2023/02/14 19:30
- 数学 △ABC≡△DEF≡△GHIという感じで書き表すのはダメですか? 3 2022/10/23 01:58
- Excel(エクセル) Excelで、半角スペースをTABに変換する 5 2022/10/18 14:18
- 数学 数学 証明・求め方 2 2021/11/14 01:09
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/03/09 14:24
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 10:07
- その他(プログラミング・Web制作) python の簡単な文が理解出来ない、なんでこうなるのか 5 2021/11/28 09:56
- Excel(エクセル) 列の複数ある空白セルを飛ばして、セルに並べて表示したい 3 2023/02/12 16:49
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
プログラミング言語の制作方法について
C言語・C++・C#
-
これなにがちがうんですか??
C言語・C++・C#
-
Excel:文字との間に数字の組合せ、次のセルの数字を1ずつ増やすには?
Excel(エクセル)
-
-
4
マクロVBAについてご教授いただけましたらと存じます。
Visual Basic(VBA)
-
5
行政文書を、フロッピーで渡しますと、役所から言われてるんですが、フロッピーなんていま見れますか?ネカ
その他(コンピューター・テクノロジー)
-
6
写真のプログラムは、1からnまでの、全整数の積すなわち階乗値を求めて返却する関数を作成したいのですが
C言語・C++・C#
-
7
C言語関数違いについて。
C言語・C++・C#
-
8
C言語 バッファについて。
C言語・C++・C#
-
9
エラー表示になってしまいます。
Excel(エクセル)
-
10
C言語 解答について。
C言語・C++・C#
-
11
プログラムの素朴な質問です 分岐するコードを書く時に、 /** * 関数 */ sub(){ ...
その他(プログラミング・Web制作)
-
12
C言語について。
C言語・C++・C#
-
13
Excelでオートフィルをした時に,値のバグについて
Excel(エクセル)
-
14
パソコンって文字がガタガタしてるものがありますよね。こういうパソコンを買いたくないのですが、どうすれ
その他(コンピューター・テクノロジー)
-
15
xlookup関数の引数を利用して検索元に移動するVBAコードについて
Visual Basic(VBA)
-
16
Excelで、改行がある場合の条件式(関数)の書き方を教えてください
Excel(エクセル)
-
17
スコープ解決演算子を解読できるサイトを教えて!
その他(プログラミング・Web制作)
-
18
倍数の求め方? 教えてほしい。
Excel(エクセル)
-
19
エクセルマクロでデータ出力の際の条件がうまく機能しません。
Excel(エクセル)
-
20
エクセル 関数
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
EXCELのVBAでRange("A1:C4")を...
-
一つのTeratermのマクロで複数...
-
Excel VBAからAccessマクロを実...
-
メッセージボックスのOKボタ...
-
非表示の列をすべて削除するマクロ
-
エクセルに張り付けた写真のフ...
-
エクセルで別のセルにあるふり...
-
ExcelのVBA。public変数の値が...
-
ExcelVBAでPDFを閉じるソース
-
VBA アドインについて お詳しい...
-
TERA TERMを隠す方法
-
マクロで空白セルを詰めて別シ...
-
EXCELマクロでのThisisWor...
-
サクラエディタ・マクロ → VSCo...
-
エクセルマクロ自動更新
-
[初心者です]VBAで指定列か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルで別のセルにあるふり...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
ExcelVBAでPDFを閉じるソース
-
EXCELのVBAでRange("A1:C4")を...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
マクロ実行時、ユーザーフォー...
-
Excelのマクロについて教えてく...
-
ソース内の行末に\\
おすすめ情報