
A 回答 (9件)
- 最新から表示
- 回答順に表示
No.9
- 回答日時:
質問通りにセルを結合するようにしてみました。
作って気が付いたんですが、入力したデータを直接結合すると、結合を解除したときに1件を残して空白になってしまいます。結合を解除して修正後、最後結合とかができなくなります。
また、結合済みデータに修正を加えると、再度結合しようとすると重複データが削除されているのでうまくいかない場合が発生します。コピーデータを結合し、元データは非表示にしておくとかが一般的でしょうか。
質問者様の考えが分からないので、出力列を指定するようにしています。
モジュールの
'選択列からこの数値分離れた右列に出力
Const wrtCol = 2
の数値分離れた右列(この場合は2列右)に出力します。「0」にすれば選択したセル範囲を直接結合します。
ALT+F11を押してVBE画面で挿入メニューから標準モジュールを挿入します。
下記「Sub以下」を標準モジュールに貼り付けます。(今は元データの2列右に出力します)
シートに戻り、結合したいセル範囲を選択し、開発タブ>マクロ>マクロ名から「セルの結合」 を選択して実行します。
Sub セルの結合()
'選択列からこの数値分離れた右列に出力
Const wrtCol = 2
Dim rw As Integer '行カウンタ
'確認メッセージを非表示
Application.DisplayAlerts = False
'出力位置にコピーする
Selection.Copy Selection.Offset(0, wrtCol)
'コピーしたデータを結合する
Selection.Offset(0, wrtCol).Select
With Selection
For rw = .Rows.Count To 2 Step -1 '下から結合
If .Cells(rw) = .Cells(rw - 1) Then
.Cells(rw - 1).Resize(2).Merge
.Cells(rw - 1).VerticalAlignment = xlCenter
End If
Next
End With
'確認メッセージを表示するように戻す
Application.DisplayAlerts = True
End Sub
No.8
- 回答日時:
どうしても結合したいとして、手動でのちょっと効率的なやり方としては
まず、Aさんを全部選択して結合する→結合セルを選択してホームタブの書式のコピー/貼り付けボタン(刷毛のアイコン)をダブルクリックする。
その状態で次にBさんのセルを範囲選択する→Cさんのセルを範囲選択・・・
終わったら、アイコンを再度押すかEscキーを押す。
数がいくつあるかわかりませんので手動でできる範囲なら・・・
No.7
- 回答日時:
質問の「結合」が主目的なのかよく分かりませんが、セルを結合すると複数の文字列を一カ所に集める必要があるわけですが、文字列を複数セル範囲で結合したりする関数がなく、しょうがなくVBAを使ったりします。
逆に、VBAを使うと実行処理が必要だったり、ユーザー定義関数を作っても、それなりに応用できる必要があります。ということで、セルを結合しない方法を考えてみました。質問の添付図を見ると、左の一覧に対し右の名前はその同じ名前の縦の中央あたりにあるのでそのようにしています。5人だったら3番目の行、4人は2番目、3人は2番目、2、1人は最初の行に表示します。
●算式による対応(添付図の左)
添付図のセルD2
=IF(COUNTIF($B$2:B2,B2)=INT((COUNTIF(B:B,B2)+1)/2),B2,"")
下にコピーします。
●条件付き書式による対応(添付図の右)
G列にデータを配置しています。
セルG2の条件付き書式の設定は、
数式を使用して、書式設定するセルを決定で数式は、
=COUNTIF($G$2:G2,G2)<>INT((COUNTIF(G:G,G2)+1)/2)
書式はフォントの色を白にしています。
下に書式をコピーします。
ご参考に。

No.6
- 回答日時:
準備:
A列にA1からデータを並べておく
手順:
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける
sub macro1()
dim r as long
application.displayalerts = false
for r = range("A65536").end(xlup).row to 2 step -1
if cells(r, "A") = cells(r - 1, "A") then cells(r - 1, "A").resize(2, 1).merge
next r
application.displayalerts = true
end sub
ファイルメニューから終了してエクセルに戻る
ALT+F8を押し、マクロを実行する。
No.5
- 回答日時:
No4です。
いつのまにやら画像が表示されましたが、画像を見る前のマクロですのでデータはA列にあるものとして書いています。
("a1:A" & Range("a"
Range("A" & frow & ":A" & c.Row).Select
上記の部分のaやAを該当の列に変更してください。aとAは取り立てて区別しているわけではありません。すべてAでよろしいです。
No.4
- 回答日時:
-----------------
Aさん
-----------------
Bさん
------------------
Cさん
------------------
みたいにしたいということでしょうか。
マクロです。ALT+F11を押して左側に出ているその操作をしたいシート名をダブルクリックすると右に白い画面が出るのでそこに下記のコードをコピペしてください。エクセル2013で作成しましたがたぶん2007以降だと動くと思います。2003だと無理かもしれません。表示タブの右の端のマクロでマクロの表示でExampleを実行してください。ただし、実行した後に元には戻せませんので、元のファイルをコピーしたものでテストしてください。
Sub Example()
Dim c As Range
Dim frow As Long
Application.DisplayAlerts = False
frow = 1
For Each c In Range("a1:A" & Range("a" & Rows.Count).End(xlUp).Row)
If c.Value <> c.Offset(1, 0).Value Then
Range("A" & frow & ":A" & c.Row).Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
frow = c.Row + 1
End If
Next
Application.DisplayAlerts = True
End Sub
No.2
- 回答日時:
「セルの結合」なんてな言葉を発しておられるけど、誤解してませんか?
「という風にしたい」として示されたものは、単に、“重複”するデータを“無重複”データにしたとしか見えません。
「という列」のどのセルとどのセルを結合したら「という風に」なるのですか?
この回答への補足
説明が足りず申し訳ありません。
例ではありますが図のように、
列内に同一の文字が連続し、それを一つ一つドラッグし、セルを結合する、という作業は非常に時間がかかります。
そのため、画像の矢印の右列内のようなセルの結合を一度にやれないか、という質問でした。
No.1
- 回答日時:
重複したデータを整理したいという事でしょうか
2007以降だとデータタブに重複の削除というものがありますのでそちらで対応できます。
2003だと以下のページを参考にしてください
http://allabout.co.jp/gm/gc/376556/2/
この回答への補足
ありがとうございます、
実は、重複の削除、ではなく同じ列内にある、同じ値(文字)を一気に結合させたいんです。
ドラッグして結合を何度もやるのはきついので。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルでA列セル内で折り返すことなく、文字列を、B列C列・・・側に一行に 2 2022/07/23 02:02
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
- Excel(エクセル) Excelでの検索結果を含む行だけを表示させたい 5 2023/03/10 17:08
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) エクセルのことで教えてください。 A1セルに、 別シートのA1セルが1のときは「A」、2のときは「B 4 2023/02/24 23:08
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのフィルター後の一番上の...
-
EXCELで最後の行を固定
-
エクセルで特定の文字列が入っ...
-
EXCELマクロを使い、空白行では...
-
直近の5個の平均を求めたい
-
連続データが入った行の一番右...
-
特定の文字がある行以外を削除...
-
Excelで非表示のセルをとばして...
-
VBA 曜日に色がついている列は...
-
xls:CopyFromRecordset罫線描写
-
エクセルVBAのEntireRow.Hidden...
-
エクセル クリックでセルの色...
-
一気にセルの結合できますか?
-
Excel2003枠を作るマクロ
-
[EXCEL]ボタン押す→時刻が表に...
-
マクロで範囲指定をするには
-
Excellマクロで数値0と空白部分...
-
Val関数をVBAで使うには?
-
エクセルで、列内の連続した文...
-
エクセル2003での行(列)の自...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル 上下で列幅を変えるには
-
[EXCEL]ボタン押す→時刻が表に...
-
Excelのフィルター後の一番上の...
-
エクセルで特定の文字列が入っ...
-
excelのデータで色つき行の抽出...
-
エクセル マクロで数値が変っ...
-
Excel グラフのプロットからデ...
-
結合されたセルをプルダウンの...
-
エクセル マクロ オートフィ...
-
excel 小さすぎて見えないセル...
-
Excel ウインドウ枠の固定をす...
-
EXCELで最後の行を固定
-
電話番号の入力方式が違うデー...
-
エクセルVBA 最終行を選んで並...
-
エクセルのセルに指定画像(.jpg...
-
エクセル 時間の表示形式AM/PM...
-
連続データが入った行の一番右...
-
Excelで非表示のセルをとばして...
おすすめ情報