「ブロック機能」のリニューアルについて

セルを2つ一緒にさせるとセルの内容が1つなくなってしまうのですが内容も消えずに一緒にさせる方法を教えて下さい。

教えて!goo グレード

A 回答 (6件)

方法の1つとして、作業列を作って、そこで文字列を結合させ、もとの2列を削除するというやり方があります。


結合には「&」やCONCATENATE関数を使う方法があります。
これについては、過去の質問をご参照下さい。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2210850


別の方法として、マクロを使うやり方があります。こちらを使うと、結合したいセルを選択してマクロを実行するだけで済みますので簡単です。
こちらのページにコードが書かれていますので試してみて下さい。

29 セルを結合しその中の文字も結合するには
http://park11.wakwak.com/~miko/Excel_Note/99-02_ …

なお、コードの使い方について分かられないことがあれば、上記ページ文中の「マクロの使い方(1)標準モジュール」に手順が載っていますのでご参照下さい。
    • good
    • 2
この回答へのお礼

ありがとうございまいた。
参考になりました。
関数でやってみます。

お礼日時:2006/07/03 01:59

こんにちは。

KenKen_SP です。自分で使ってるものですが、ご参考までに。
行・列方向のいずれにも対応し、選択範囲は複数あっても構いません。

【手 順】
  1. [ALT]+[F11]キーで Visual Basic Editor (以下 VBE)起動
  2. VBE 画面で、[挿入]-[標準モジュール]
  3. 2. で開いた場所に、下記のソースコードをコピー&ペースト
  4. VBE を閉じる

【使い方】
  1. Excel 画面で対象セルを選択
  2. [ALT]+[F8]または、[ツール]-[マクロ]-[マクロ]から実行

【補 足】
  Join を使っているため、Excel2000 以上で動作します。ソースコードで
  Const ROW_DELIMITER = vbLf → Const ROW_DELIMITER = ""
  に書き換えると縦のセルを結合時にセル内改行されなくなります。

【ソースコード】

Sub CellsMerge_KeepValues()

  Dim rngTarget As Range
  Dim rngArea  As Range
  Dim Buf1()  As String
  Dim Buf2()  As String
  Dim lngR   As Long, intC As Integer
  Dim i     As Long, j  As Integer
 
  ' 行列の区切り文字設定(用途に合わせて適当に変更して下さい) -----------
  Const ROW_DELIMITER = vbLf
  Const COL_DELIMITER = ""
  ' --------------------------------------------------------------------
 
  If TypeName(Selection) <> "Range" Or Selection.Count < 2 Then Exit Sub
  If Application.CountA(Selection) = 0 Then
    ' 値がないので単純に結合させて終了
    Selection.MergeCells = True
    Exit Sub
  End If
  
  ' 実行確認
  j = MsgBox( _
    Prompt:="選択範囲中に結合セルが含まれていると正確に処理" & vbLf _
       & "できません。実行しますか?", _
    Buttons:=vbOKCancel + vbExclamation + vbDefaultButton2, _
    Title:="セルと書式化された値の結合")
  If j = vbCancel Then Exit Sub
  
  ' メイン
  On Error GoTo ERROR_HANDLER
  Application.ScreenUpdating = False
  
  Set rngTarget = Intersect(Selection, ActiveSheet.UsedRange)
  For Each rngArea In rngTarget.Areas
    With rngArea
    If .Cells.Count > 1 Then
      lngR = .Rows.Count: intC = .Columns.Count
      ReDim Buf1(1 To lngR)
      For i = 1 To lngR
        ReDim Buf2(1 To intC)
        For j = 1 To intC
          ' 書式を生かすので Text で
          Buf2(j) = .Cells(i, j)(1).Text
        Next j
        ' 列方向文字列連結
        Buf1(i) = Join$(Buf2, COL_DELIMITER)
        Erase Buf2
      Next i
      ' セル結合
      .ClearContents
      .MergeCells = True
      ' 行方向文字列連結
      .Value = Join$(Buf1, ROW_DELIMITER)
      Erase Buf1
    End If
    End With
  Next rngArea
  
TERMINATE:
  Set rngTarget = Nothing
  Exit Sub

ERROR_HANDLER:
  MsgBox "Error(" & Err.Number & ") が発生しました" & vbLf _
      & Err.Description, vbCritical
  Resume TERMINATE
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
マクロも勉強したいのでやってみます。

お礼日時:2006/07/03 01:56

(1)文字列の結合


(2)C1セルに=A1&B1
(3)A1とB1セルを結合
(4)A1にC1をコピーして、値だけ貼り付け
VBAの場合標準モジュールに
Sub test01()
d = Range("A65536").End(xlUp).Row
MsgBox d
For i = 2 To d
Cells(i, "A") = Cells(i, "A") & Cells(i, "B")
Cells(i, "B") = ""
Next i
End Sub
または
Sub test02()
d = Range("A65536").End(xlUp).Row
MsgBox d
Application.DisplayAlerts = False
For i = 2 To d
s = Cells(i, "A") & Cells(i, "B")
Range(Cells(i, "A"), Cells(i, "B")).MergeCells = True
Cells(i, "A") = s
Next i
Application.DisplayAlerts = True
End Sub
確認メッセージがうるさいですが、上記のようにDisplayArerts=Falseで無視できます。
    • good
    • 0
この回答へのお礼

ありがとうございました。
2で出来ました。

お礼日時:2006/07/03 01:55

二つのセル内容が文字の場合のことですね。


それでしたら手間がかかりますが下記のような手順を踏むしかないでしょう。セルA1が「傾斜」、セルB1が「角度」で、セルA1を「傾斜角度」にしたい場合を例にとって説明します。
1.セルB1をクリックしてF2キーを押す
2.「角度」の文字列をドラッグ(マウスの左ボタンを押したままマウスを動かす)する
3.マウスを右クリックして「コピー(C)」をクリックする
4.セルA1をクリックしてF2キーを押す
5.マウスを右クリックして「貼り付け(P)」をクリックする
6.エンターキーを押す
以上の操作により、セルA1の内容が「傾斜角度」となり、セルB1の内容は「角度」のまま残ります。もし一連の操作直後のセルB1を空白のセルにしたければ、3の操作で「切り取り(T)」をクリックします。
    • good
    • 0
この回答へのお礼

ありがとうございました。
やってみましたがうまく出来ませんでした。
また挑戦してみます。

お礼日時:2006/07/03 01:53

NO1です。

違うソフトの回答でした。すいません訂正です。

正しくは↓
セルの結合
【問題】

 セルの高さや幅を変えたとき、その行あるいは列のセルが全てその大きさに変わってしまいます。
 ひとつのセルの高さあるいは幅だけ(例えばセルA1だけとか)を変えることは可能なのでしょうか?

【回答】

 セルを結合します。

1.A1:B2を選択
2.Ctrl+1 (メニュー[書式]-[セル])
3.[配置]タブで[セルを結合する]にチェック
4.Enter

【解説】

 セルを結合することで、体裁が良くなることもありますが、並べ替えができないなど、不都合な点もいくつかあるので注意が必要です

参考URL:http://www2.odn.ne.jp/excel/waza/format.html#SEC23
    • good
    • 0
この回答へのお礼

ありがとうございました。
参考にしたいです。

お礼日時:2006/07/03 01:50

セルの結合で検索すると沢山出てきます。


↓一例です

参考URL:http://www.j-ns.com/ab/hpman/7-15.html
    • good
    • 0
この回答へのお礼

ありがとうございました。
参考にしたいです。

お礼日時:2006/07/03 01:48

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

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

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング