- ベストアンサー
エクセルで一つのセル内で空白の行だけ削除する方法
- WindowsXP エクセル2003を使用しています。一つのセル内の空白の行だけを削除したいのですが、方法はありますか?他の行の改行はそのまま残したいので、CLEANだと無理でした。
- エクセルを使用している際に、一つのセル内の空白の行だけを削除する方法を知りたいです。他の行の改行は残したままにしたいですが、CLEAN関数では実現できませんでした。
- WindowsXP エクセル2003を使用していますが、一つのセル内の空白の行だけを削除したいです。他の行の改行はそのまま残したままにしたいので、CLEAN関数では対応できなかったです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
関数や置換だとよい方法が見つかりませんでした。 マクロを作ってみました。 ★念のため、実行前に最新の状態でファイルを保存をしてから、試してみてください。 (1)セル内の空白行を削除したい列またはセル範囲を選択します。 (2)Alt + F11 キーを押しVisual Basic Editorを開きます。 (3)左側にあるツリー状のメニューを操作します。 (表示されていなければ、Ctrl+Rキーを押す。 VBAProject(ファイル名.xls) └Microsoft Excel Objects ├ ├ ├ └ThisWorkbook ←ここをダブルクリックして開きます。 (4)右側の広い欄に、下記のコードを貼り付けます。 '-↓ここから----- Sub セル内空白行削除() Dim myArray Dim tmpStr As String For Each obj In Selection If obj.Value <> Empty Then myArray = Split(obj.Value, vbLf) For idx = LBound(myArray) To UBound(myArray) If idx = 0 Then tmpStr = myArray(idx) ElseIf myArray(idx) <> Empty Then tmpStr = tmpStr & vbLf & myArray(idx) End If Next obj.Value = tmpStr tmpStr = Empty End If Next End Sub '-↑ここまで----- (5)Sub セル内空白行削除() から End Subの間の行(どこでも結構)にカーソルを置き、 F5キーを押してマクロを実行します。 これで不要なセル内の空白行が削除されると思います。 (6)貼り付けたコードは削除して、右上の×でVisual Basic Ediorを閉じ、Excelの通常画面に戻ります。
その他の回答 (4)
- ASIMOV
- ベストアンサー率41% (982/2351)
空白の行は改行が2つ入っている訳ですから 改行2つを改行1つに置き換えれば良いのでは? 編集 -> 置換 で 「検索する文字列」にCtrl-j(コントロールキーを押しながら「j」キーを押す)を2回入れます(画面上は見えませんが大丈夫) 「置換後の文字列」にCtrl-j、1回入れて、置換(すべて置換)でどうでしょうか
補足
回答ありがとうございます。 試してみたのですが、空白改行の行数がセルによっては2~4と一定ではないため、全セルに対応ができませんでした。 質問説明不足で、すみません。
- tom04
- ベストアンサー率49% (2537/5117)
たびたびごめんなさい! No.2です。 確かに一つずつ同じ操作を繰り返すのは大変ですよね 他の方法としては作業列を使う方法になりますが ↓の画像のようにCLEAN関数を使えばどうでしょうか? A1セルからデータがあるとして 作業列セル=CLEAN(A1) としてオートフィルで下へコピー 但し、データが並んでいる場合ですけどね。 尚、セルの書式設定から「配置」タブで「折り返して全体を表示する」にチェックを入れておきます。 これでA列を削除してしまうと参照相手がなくなるのでエラーとなります。 そこで一工夫必要になりますが、 まず作業列全部をコピー → A1セルを選択 → 形式を選択して貼り付け → 「値」にチェックを入れてOK これで作業列を削除しても大丈夫です。 以上、お役に立てればいいのですが、 どうも失礼しました。m(__)m
補足
回答ありがとうございます。 試してみたのですが、改行位置がずれてしまう箇所がありました。 今回は他の改行はそのままにしておきたいと思っています。 詳しい説明ありがとうございます。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 質問の解釈が間違っていたらごめんなさい。 >一つのセル内の空白の行だけを削除したいのですが・・・ とあるので↓の画像のように、1つのセル内で空白の行があるという事でしょうか? もしそうであれば、そのセルをアクティブにすれば 数式バーに文字が表示されますので、 「さ」の前にカーソルを移動させ、Back Spaceキー 又は「こ」の後ろにカーソルを移動させ、Deleteキー どちらかでOKだと思います。 以上、参考になれば幸いですが、 的外れの回答なら読み流してくださいね。m(__)m
補足
回答ありがとうございます。 一つのセルですとその方法でできました! もし、同様のセルがたくさんある場合、一括でできる方法はありますか? 画像をつけてわかりやすく説明してくださり、ありがとうございます。
- IdleMaster
- ベストアンサー率25% (55/215)
-------------------------------------------------------------------- ABCDE・・・ 1 あいうえお 2 かきくけこ 3 4 さしすせそ 5 たちつてと ・ ・ -------------------------------------------------------------------- 消したい行の一番左端(この場合は3)をクリックで選択し、 右クリック→削除 で、消す事が出来ます。
補足
回答ありがとうございます。 質問不足でした。 同様のセルが100くらいあり、手作業でできないので 一括でできる方法を探しています。
お礼
回答ありがとうございます。 できました!!! わざわざマクロを作ってくださり、本当にありがとうございます。