• ベストアンサー

【エクセル】自動で、同じ内容のセルを結合させたい。

ある縦1列に(A01が5行、A02が8行・・・ G32が4行といったように)規則的に 並んでいる複数の分類番号があるとして、 これら同じ分類番号を見やすくするために、 今は一つ一つ手動でセル結合しています。 もし、自動的に、同じ分類番号を一つのセルに 結合してくれるようなやり方があったら・・・ と思うのですが、何かお知恵を拝借できないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.1

VBAプログラムを書いてみました。 上から順に見ていって、内容の異なるセルがあれば、そこより上を結合する、という手順にしてあります。 数値は文字列として処理します。細かいチューニングはしていません。適当にアレンジしてください。 Sub セルの結合()   Dim 行, 対象列, 開始行 As Long   Dim 上のセルの内容, このセルの内容 As String   Dim 対象シート As Worksheet   対象列 = 1 '・・・(数字で指定)   開始行 = 1 '・・・(数字で指定)   Set 対象シート = Sheets("Sheet1") '名前で指定   With 対象シート     行 = 開始行 + 1     上のセルの内容 = .Cells(行, 対象列)     Do While Not (IsEmpty(.Cells(行 - 1, 対象列)) And IsEmpty(.Cells(行, 対象列)))       このセルの内容 = .Cells(行, 対象列)       If このセルの内容 <> 上のセルの内容 Then         If 開始行 < 行 - 1 Then           .Cells(開始行 + 1, 対象列).Resize(行 - 開始行 - 1, 1).ClearContents         End If         .Cells(開始行, 対象列).Resize(行 - 開始行, 1).Merge         開始行 = 行         上のセルの内容 = .Cells(開始行, 対象列)       End If       行 = 行 + 1     Loop   End With End Sub

sunny0701
質問者

お礼

ご親切に、ありがとうございました。 こんなに短時間で、プログラムがかけてしまうなんて、 すごいですねー!感動しました。 前にも、マクロのやり方を教えてもらったことがあって、 それも見返しながら、チャレンジしてみたいと思います。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

こういうのは、セルの結合をすると後々ややこしいので たとえばA1:A12にデータがあるとして、それを範囲指定する。 CTRLを押しながらA2をクリック。A1:A12が範囲指定したままになっていること。 書式-条件付き書式- 数式が 式に=A2=A1 といれて書式の文字フォントの色を白を指定する。(セルのパターン色と合わせる) OK で続きの先頭行の1行がけが、残って見える。 >ある縦1列に(A01が5行、A02が8行・・・ G32が4行といったように)規則的に 並んでいる複数の分類番号があるとして、・・・ は何のことか判らなかったが多分上で私が言っているようなことでしょう。 セル番地に使うA1やA2に似たものを、セルの内容の例示に使わないほうがよいと思う。よく見ると、A01と0が入っているけれども。

sunny0701
質問者

お礼

アドバイス、ありがとうございました。 文字を白地で消してしまうというのも、 なるほどのアイデアでした。 確かに、結合すると、のちのちややこしいですよね。 後は、表示をそれぞれの真ん中にもっていく方法について、 もう少し考えたいと思います。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A