「お昼の放送」の思い出

ある縦1列に(A01が5行、A02が8行・・・
G32が4行といったように)規則的に
並んでいる複数の分類番号があるとして、
これら同じ分類番号を見やすくするために、
今は一つ一つ手動でセル結合しています。

もし、自動的に、同じ分類番号を一つのセルに
結合してくれるようなやり方があったら・・・
と思うのですが、何かお知恵を拝借できないでしょうか?

A 回答 (2件)

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
    • good
    • 0
この回答へのお礼

ご親切に、ありがとうございました。
こんなに短時間で、プログラムがかけてしまうなんて、
すごいですねー!感動しました。

前にも、マクロのやり方を教えてもらったことがあって、
それも見返しながら、チャレンジしてみたいと思います。

ありがとうございました。

お礼日時:2005/08/28 17:20

こういうのは、セルの結合をすると後々ややこしいので


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

アドバイス、ありがとうございました。
文字を白地で消してしまうというのも、
なるほどのアイデアでした。
確かに、結合すると、のちのちややこしいですよね。

後は、表示をそれぞれの真ん中にもっていく方法について、
もう少し考えたいと思います。

ありがとうございました。

お礼日時:2005/08/28 17:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報