Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6674 / 13644 ツリー ←次へ | 前へ→

【43809】連続する同一の値のセルを結合したい A340 06/10/26(木) 10:45 質問[未読]
【43812】Re:連続する同一の値のセルを結合したい ぱっせんじゃー 06/10/26(木) 10:53 発言[未読]
【43814】Re:連続する同一の値のセルを結合したい A340 06/10/26(木) 10:58 発言[未読]
【43817】Re:連続する同一の値のセルを結合したい A340 06/10/26(木) 11:36 質問[未読]
【43820】Re:連続する同一の値のセルを結合したい ぱっせんじゃー 06/10/26(木) 11:48 発言[未読]
【43822】Re:連続する同一の値のセルを結合したい A340 06/10/26(木) 12:01 質問[未読]
【43824】Re:連続する同一の値のセルを結合したい ぱっせんじゃー 06/10/26(木) 12:45 発言[未読]
【43834】Re:連続する同一の値のセルを結合したい A340 06/10/26(木) 15:25 お礼[未読]
【43826】Re:連続する同一の値のセルを結合したい Jaka 06/10/26(木) 13:04 発言[未読]
【43831】Re:連続する同一の値のセルを結合したい A340 06/10/26(木) 14:28 お礼[未読]

【43809】連続する同一の値のセルを結合したい
質問  A340  - 06/10/26(木) 10:45 -

引用なし
パスワード
   初めて質問させて頂きます。

縦、6〜413行・横、F〜FP列までの範囲に、横方向に1が連続する表があります。
もちろん、ランダムに、その連続する数もバラバラです。
文字表現は難しいので以下のイメージです。
 F G H I J K L M N O P Q R S T・・・
6
7
8  1 1 1 1 1 1 1    1 1 1 1 1
9    1 1 1   1 1 1 1    1 1 1 
10
11
12

この場合、G8〜M8を結合、P8〜T8まで結合・・・と、
連続している場合のみ、その連続している範囲を結合したいのです。
縦の連続は無関係です。横方向に連続しているものです。

お手数ですが、助けて頂けると幸いです。
どうぞ、よろしくお願い致します。

【43812】Re:連続する同一の値のセルを結合したい
発言  ぱっせんじゃー  - 06/10/26(木) 10:53 -

引用なし
パスワード
   一列のデータの場合なので逆ですが
改造すれば出来ると思います。
B列で同じ値が続いたら結合するものです。
結合解除も載せていきます。

'結合
Dim c As Range
Dim r As Range
Dim MyCell As Range
Dim cnt As Long
 Application.ScreenUpdating = False
 For Each c In Worksheets(1).Range(Worksheets(1).Cells(1, 2), _
  Worksheets(1).Cells(65536, 2).End(xlUp))
  '1行下のセルと同じ場合
  If c.Value = c.Offset(1).Value Then
   'カウントを1増やす
   cnt = cnt + 1
    '重複開始行のセルを取得
    If cnt = 1 Then Set MyCell = c
  End If
 '1行下のセルと違う値の場合
  If c.Value <> c.Offset(1).Value Then
  'カウントが1以上だったら
  If cnt > 0 Then
   '重複開始行以外のセルクリア
    MyCell.Offset(1).Resize(cnt).ClearContents
    'セル結合
    MyCell.Resize(cnt + 1).MergeCells = True
    'カウントを0に戻す
    cnt = 0
  End If
  End If
 Next
 Application.ScreenUpdating = True

'分解
Dim c As Range
 Application.ScreenUpdating = False
 For Each c In Worksheets(1).Range("B2", Range("B65536").End(xlUp))
  If c.MergeCells = True Then c.MergeCells = False
  If c.Value = "" Then c.Value = c.Offset(-1).Value
 Next
 Worksheets(1).Range("B2", Range("B65536").End(xlUp)).Borders.Weight = xlThin
 Application.ScreenUpdating = True
End Sub

【43814】Re:連続する同一の値のセルを結合したい
発言  A340  - 06/10/26(木) 10:58 -

引用なし
パスワード
   早速の返答で、驚いております。
まずは、ありがとうございます。
早速試してみたいと思います。

【43817】Re:連続する同一の値のセルを結合したい
質問  A340  - 06/10/26(木) 11:36 -

引用なし
パスワード
   すいません・・・
どうも上手くいきません。
offsetで、1列横を選択できないのと、そもそも基本的にどこを改造すればよいのかが不明です。
全くの素人で申し訳御座いません・・・。
何か方法はないでしょうか?

【43820】Re:連続する同一の値のセルを結合したい
発言  ぱっせんじゃー  - 06/10/26(木) 11:48 -

引用なし
パスワード
   提示したコードは、

あくまでも
B列、の場合です。

行の場合は

ループさせるセル範囲を
列から行に変える必要があります。

また、提示したコードは
一列のみですので、
複数行の場合は、

For i = 1 to 10 '行番号などを指定
 For Each c In 〜

 Next
Next i

のようにループを入れ子にする必要があります。

【43822】Re:連続する同一の値のセルを結合したい
質問  A340  - 06/10/26(木) 12:01 -

引用なし
パスワード
   FOR EACHの部分を横方向に変更させ、End(xlUp)をEnd(xlToRight)に・・・
横方向に変換する部分をしっかり変更さえさせれば、問題ないでしょうか?

とりあえず1列のみで試してみてから、FOR iか何かで幅を広げてみます。

考え方が間違っていれば、おっしゃって下さい。
わざわざお返事を頂き、ありがとうございます。

【43824】Re:連続する同一の値のセルを結合したい
発言  ぱっせんじゃー  - 06/10/26(木) 12:45 -

引用なし
パスワード
   >End(xlUp)をEnd(xlToRight)に・・・

場合によります。

Worksheets(1).Rannge(Worksheets(1).Range("A1"),Worksheets(1).Range("A1").End(XlToRight))

これは、A1を選択した状態でCtrl+Shift+→を同時押ししたのと同じことになります。
途中に空白セルがあったらその手前で止まります。

Worksheets(1).Rannge(Worksheets(1).Range("A1"),Worksheets(1).Range("IV1").End(XlToLeft))

こっちは、
A1〜IV1からCtrl+Shift+←を同時押しした時に止まったセルまでを指定したことになります。

【43826】Re:連続する同一の値のセルを結合したい
発言  Jaka  - 06/10/26(木) 13:04 -

引用なし
パスワード
   セルに入っている値のことは考えてません。

Dim SPP As Range, RG As Range
Application.DisplayAlerts = False
For i = 8 To 16
  Set SPP = Cells(i, 6).Resize(, 167).SpecialCells(xlCellTypeConstants)
  For Each RG In SPP.Areas
    If RG.Count > 1 Then
      RG.Merge
    End If
  Next
Next
Set SPP = Nothing
Application.DisplayAlerts = True

【43831】Re:連続する同一の値のセルを結合したい
お礼  A340  - 06/10/26(木) 14:28 -

引用なし
パスワード
   お返事ありがとうございます。
早速試して見たのですが、上下に同じ列幅のものがあれば、上下でも
結合されてしまいました。

本と格闘しながら、ご参考にさせてもらいがんばってみます。
忙しい中、お返事頂き、ありがとうございます。

【43834】Re:連続する同一の値のセルを結合したい
お礼  A340  - 06/10/26(木) 15:25 -

引用なし
パスワード
   ありがとうございます!
なんとか、横方向の結合が完了いたしました。

あとは、何も入力されていないセルを結合させるのみです!
がんばってみます!!

6674 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free