マクロで処理を自動化したいのですが、作ることができません。
技術のある方、お助け下さい。
D列で上下のセルの値が同じ場合、A列、B列、C列のセルを統合する。
A2、A3を統合しますが、データは残す。A2、A3のデータは改行する
B2、B3を統合しますが、データは残す。B2、B3のデータは改行する。
C2、C3を統合します。データも統合する。
以降は同じ要領です。画像をご参照下さい。
※画像は1ファイルしか添付できないため、A-D列の実行結果をF-I列に表示していますが、
A-D列に表示(統合)させたいです。
No.5ベストアンサー
- 回答日時:
もしかして、こういうこと?
tom04さんのマクロの方が、遥かに高機能ですが・・・。
Sub sample()
Dim i As Long
For i = Cells(Rows.Count, "D").End(xlUp).Row - 1 To 2 Step -1
If Cells(i, "D") = Cells(i + 1, "D") Then
Cells(i, "A").Value = Cells(i, "A").Value & vbLf & Cells(i + 1, "A").Value
Cells(i, "B").Value = Cells(i, "B").Value & vbLf & Cells(i + 1, "B").Value
Rows(i + 1).Delete
End If
Next i
End Sub
No.4
- 回答日時:
No3です。
>A列が同じであれば、C列、D列も同じ(1つ)になります。
ということなので、No2の方のマクロで問題ないかと思います。
No2の方の返信で、
>提示して頂いたコードを実行したところ、一見セルが統合されているのですが、
>例としてA2-3をコピーして別セルに張り付けると、1行不要なセルがコピーされます。
>A4-6については2行不要なセルがコピーされます。
とありますが、どのようなことでしょうか。
こちらで確認した範囲では正常です。
A2-3をコピーして、G2-3に張り付け
A4-6をコピーして、G6-8に張り付けました。(添付図参照)
どのようにくずれるのか、画像を提示していただけると、わかりやすいかと。
No.3
- 回答日時:
C列統合とのことですが、異なる場合は、改行を付加して連結ですか。
例えば、図で、C4=”大”ですが、C4=”中”の場合は、
結合セルは
中
大
のようになりますか?
D列も同様です。
例えば、D3="果実類"ですが、D3="果実類特別"の場合は
結合セルは
果実類
果実類特別
のようになりますか?
お返事ありがとうございます。
C列については、きゃべつの場合は必ず「大」になります。
D列についても、きゃべつの場合は必ず「野菜類」になります。
A列が同じであれば、C列、D列も同じ(1つ)になります。
No.2
- 回答日時:
こんばんは!
>統合する。
は「セル結合」ですね。
画像ではC・D列(サイズと分類列)は必ず同じデータになっていますので、
C・D列はそのまま結合します。
一例です。
Sub Sample1()
Dim i As Long, cnt As Long
Dim myStr1 As String, myStr2 As String
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
If Cells(i, "D") = Cells(i + 1, "D") Then
myStr1 = Cells(i, "A")
myStr2 = Cells(i, "B")
cnt = 1
Do While Cells(i, "D") = Cells(i + cnt, "D")
myStr1 = myStr1 & vbCrLf & Cells(i + cnt, "A")
myStr2 = myStr2 & vbCrLf & Cells(i + cnt, "B")
cnt = cnt + 1
Loop
Application.DisplayAlerts = False
With Cells(i, "A").Resize(cnt)
.ClearContents
.Merge
.Value = myStr1
End With
With Cells(i, "B").Resize(cnt)
.ClearContents
.Merge
.Value = myStr2
End With
Cells(i, "C").Resize(cnt).Merge
Cells(i, "D").Resize(cnt).Merge
Application.DisplayAlerts = True
i = i + cnt - 1
End If
Next i
End Sub
こんな感じではどうでしょうか?
※ 細かい検証はしていませんので
不具合が出たらごめんなさい。m(_ _)m
お返事ありがとうございます。
お願いごとで申し訳ないのですが、もう1点教えて頂けないでしょうか。
提示して頂いたコードを実行したところ、一見セルが統合されているのですが、
例としてA2-3をコピーして別セルに張り付けると、1行不要なセルがコピーされます。
A4-6については2行不要なセルがコピーされます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) vbaについて 主に以下のような設定をしたいです。 Aブックの表の行数が20未満だったら Bブックの 1 2023/06/08 23:40
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Excel(エクセル) エクセル VBA セルの結合 2 2022/09/07 11:48
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで2つの数値のうち大きい...
-
エクセルで、2種類のデータを...
-
Excelで中央揃えが出来ない?
-
エクセルで特定の文字が入って...
-
Excel 頭に「0」がついている...
-
エクセルのまとめてカッコをつ...
-
Excelの結合でA列とB列の内容...
-
ある列のセルに特定の文字が入...
-
エクセルで、数字列の中にハイ...
-
桁の違う数値での並び替え
-
連続データを1行おきに貼り付け...
-
Excelでグループの最大値から項...
-
Excel 指定行までコピーをおこ...
-
【エクセル】2行に一行のように...
-
セル内文章から、英数字のみ取...
-
Excel強制終了
-
マクロ(Excel)で上下のセルの...
-
Excelで日付の異なる時間帯別集計
-
エクセルで、数値の範囲で仕分...
-
Excel2013 カラースケールを別...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで2つの数値のうち大きい...
-
エクセルで、2種類のデータを...
-
Excelで中央揃えが出来ない?
-
エクセルで特定の文字が入って...
-
ある列のセルに特定の文字が入...
-
エクセルのまとめてカッコをつ...
-
桁の違う数値での並び替え
-
Excelでグループの最大値から項...
-
連続データを1行おきに貼り付け...
-
Excel 頭に「0」がついている...
-
excelで、1つのセルに入ってい...
-
エクセルで、数字列の中にハイ...
-
セル内文章から、英数字のみ取...
-
Excel 指定行までコピーをおこ...
-
エクセルの関数
-
Excel強制終了
-
エクセルに入力した文字列に句...
-
INDIRECTの列を可変にしたい
-
【エクセル】2行に一行のように...
-
Excelの結合でA列とB列の内容...
おすすめ情報