• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAで、一部のセルの結合をしたい)

エクセルVBAで一部のセルの結合をする方法

このQ&Aのポイント
  • エクセルの表で、一部の行を結合して表示する方法を知りたいです。特定の列のみ結合をせずにそのまま表示したいです。
  • 社内システムからエクセルに抽出したデータを加工していますが、一部の行を見やすくするために結合したいです。結合するのは特定の列以外の部分です。
  • VBAを使って特定の行を結合し、エクセルの表に表示する方法を教えてください。結合するのは特定の列以外の部分です。

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

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.2

こんにちは。 早速、回答No.1の補足、修正の件ですが、 結合しない列の数が増えることが予想されるならそれに合わせた書き方もありますが、 今回は差し当たり簡単で真っ当な修正を提示してみます。    修正は2箇所だけです。   Const IgnCol As Long = 6  の部分を1行加えながら以下のように Const IgnCol As Long = 15 Const IgnCol2 As Long = 16   If c <> IgnCol Then  の部分を以下のように If c <> IgnCol And c <> IgnCol2 Then   それぞれ変更して試してみて下さい。 それでは

happygreen
質問者

お礼

2度も回答ありがとうございました! 修正してみたところ、無事に思った通りの処理がおこなわれました! 今後、列が増える可能性はありますがその話はまだ先なのでこちらで進めさせていただきます。助かりました。 わたしはまだまだこのようなプログラムを組むことができずお力を借りましたが、いつか自分でできるように頑張りたいと思います。

その他の回答 (1)

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.1

Sub Re7563106okg_j() ' ' 結合しない列 が そのテーブルの中で 1列目から数えた相対位置で 何列目か 指定 Const IgnCol As Long = 6 Dim tmp As Variant Dim rngCur As Range, r As Range, r2 As Range Dim nMrgTop As Long, nMrgBtm As Long, c As Long ' ' 必ず 処理したいテーブル の 内側 にある セル (内側ならどこでも)を 選択してから実行   Set rngCur = ActiveCell.CurrentRegion ' テーブル全体。運用に合わせて適宜変更   Application.DisplayAlerts = False On Error GoTo Exit_ ' ' テーブルの1列目だけループして 値が変わるポイント を探して ' ' 結合するそれぞれの 先頭行 と 末尾行 の相対位置を 採りながら ' ' 単行でない場合だけ テーブル内の複数行範囲を捉えて 列毎にループ ' ' IgnCol列目でない場合だけ セルの結合をする   nMrgTop = 1   tmp = rngCur(1).Value   For Each r In rngCur.Columns(1).Offset(1).Cells     nMrgBtm = nMrgBtm + 1     If r.Value <> tmp Then       If nMrgBtm - nMrgTop > 0 Then         c = 0         For Each r2 In rngCur.Rows(nMrgTop & ":" & nMrgBtm).Columns           c = c + 1           If c <> IgnCol Then             r2.Merge           End If         Next r2       End If       tmp = r.Value       nMrgTop = nMrgBtm + 1     End If   Next r Exit_:   If Err.Number <> 0 Then MsgBox Err.Description, 48   Application.DisplayAlerts = True   Set rngCur = Nothing End Sub

happygreen
質問者

補足

早々にありがとうございます! さきほど試したのですが、私の説明ミスで、結合しなくてよい列が2列あることに気づきました。 現段階では、15列目と16列目です。 1列のみだと作成していただいたもので完璧に理想通りのものができました!もしよければ、2列存在する場合の修正箇所を教えてください。 お手数をおかけして申し訳ございません。よろしくお願いします。

関連するQ&A