• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル連結解除時、全てのセルに値)

エクセル連結解除時、全てのセルに値を入れる方法は?

このQ&Aのポイント
  • エクセルで連結セルを一括で連結解除する際に、空白セルを避ける方法があるかどうか知りたいです。
  • 連結解除した結果、全てのセルに値を入れる方法について教えてください。
  • 以前に連結解除後にジャンプしてセルを選択する方法があったようなのですが、具体的な手順を教えてください。

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

結合セル範囲を選択 結合を解除 Ctrl+G で「ジャンプ」ダイアログ表示 Alt+S で「セル選択」から「選択オプション」ダイアログ表示 k で「空白」オプション選択 Enter で「OK」して空白セルのみを選択 最上行セルがアクティブなので例えばA2なら 空白セル範囲選択状態のまま =A1 と上部セルの参照式を入力し編集状態のまま Ctrl+Enter で確定 元の結合セル範囲を選択 Ctrl+C でコピー その場で Alt+E、S、V、Enter で「形式を選択して貼り付け」の「値」で貼り付け

lovescotch
質問者

お礼

ありがとうございます!教えていただいたやりかたで出来ました。 惜しいところまでいってたんですね。関数を使う事を失念していました。 本当にありがとうごいました。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! VBAでの一例です。 各列1行目には、何かしらのデータが入っているものとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, j, k As Long Application.ScreenUpdating = False For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column Cells(Rows.Count, j).End(xlUp).Offset(1) = 1 Columns(j).UnMerge Next j For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column k = Cells(Rows.Count, j).End(xlUp).Row For i = 1 To k If Cells(i, j) = "" Then Cells(i, j) = Cells(i - 1, j) End If Cells(k, j).Delete (xlUp) Next i Next j Application.ScreenUpdating = True End Sub 'この行まで ※ 一旦マクロを実行すると元に戻せませんので、別Sheetでマクロを試してみてください。 参考になれば良いのですが・・・m(_ _)m

lovescotch
質問者

お礼

VBAではない方法で簡単にできる方法を探してました。 解決はしたのですが、わざわざありがとうございました。

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

結合セルを解除したと同時に(1操作だけで、設定とかで)質問のようなことは出来ないでしょう。 ステップが(1)セル結合解除(2)出来た空白セルに元(左上隅セル)のセルの値をセット を結合セル範囲の1つずつ行うのでなければ。 セル結合を解いても範囲指定は残ってくれるが、そこでジャンプーセル選択ー空白セルーOKで残りのセルを範囲指定してくれるが、次の左上隅のセルの値を貼り付ける操作が、選択できたセル範囲を崩しまう。 既に回等が出ているので、そちらをやってみてください。 ーー こういうのはそんなに利用頻度があるのかな。こんなところへ質問している間に10箇所ぐらいなら、操作で終わると思う。 ーー 人間がやることの繰り返しをVBAでやれば出来る。しかしそこまでやるか、と思う。 少数しかテストしてないが、下記のようなもの。 標準モジュールに Sub test01() Dim cl Dim a As String For Each cl In Range("A1:D30") If cl.MergeCells = True And cl <> "" Then a = cl.MergeArea.Address v = cl.Value MsgBox v cl.UnMerge Range(a) = v End If Next End Sub Range("A1:D30")を適当に変えて。

lovescotch
質問者

お礼

他人が作ったデータをいじる事が多く、使い勝手が悪いデータのを使いやすい表に変換する課程で、表題のような作業が発生するんです。 しかもおっしゃる通り10カ所ぐらいなら、一つ一つ入力してコピペすればいいですが、100や200もあったらわざわざ入力するのも面倒ですので。。。 VBAはあまりわからないです(汗) わざわざありがとうございました。

関連するQ&A