• 締切済み

セル内における改行文の修正

エクセルの表があり(改行されています) 1セル内が↓このようになっていて (1)あいうえお かきくけこ (2)さしすせそ (3)たちつてと なにぬねのはひふへほ これを ↓ (1)あいうえお  かきくけこ (2)さしすせそ (3)たちつてと なにぬねのはひふへほ という風に (1)(2)(3)を揃え、以下を一文字下げて頭を揃えたいのですが、量が多いので手作業で一つ一つ直すのではなく 一発で修正できるやり方はあるのでしょうか?

みんなの回答

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

#1です。もしセル内の改行がALT+ENTERだけの場合は A列に文字列があると仮定して Sub test021() For i = 1 To 100 '100行までの場合 x = Cells(i, "A") 'A列 s = 1 '---- p01: p = InStr(s, x, Chr(10)) If p = 0 Then GoTo p02 If Mid(x, p + 1, 1) = "(" Then s = p + 1 Else x = Mid(x, 1, p) & "  " & Mid(x, p + 1, Len(x) - p) s = p + 3 End If GoTo p01 '--- p02: Cells(i, "A") = x Next i End Sub で()以外の行は、見た目では、2文字下がったように見えます。 折り返して全体を表示するに設定されていても、列幅を十分広く取れば 、それを設定してないようになって、ALT+ENTERでの改行だけが、効いてきます。その場合は、上記が役立つでしょう。

hattigo
質問者

お礼

解決しました。ありがとうございました。

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

#1です。 質問を誤解していたようで、すみません。 ただし、「折り返して全体を表示する」では折り返しの箇所にデータとしては何もはいってなくて、(ALT+ENTERの場合と違いはここ)エクセル側でやっているので、ユーザー側で捕まえようがない。 あえて考えると、文字数を考え、()がない(見た目の)行は、1・2字スペースをプログラムで入れるくらいだと思う。質問者の実物例が使えないので、コードを作りようがない。 「折り返して全体を表示」になっているとしても、()の前で、推定ではユーザー(データ入力者)側で、ALT+ENTERで改行しているように思う。 でないとエクセルの折り返しに任せたら、全て()が行頭にそろうはずがまずありえない。

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

1つのセルA1に 東京都 新宿区 四谷3丁目 と見える風に文字列が入っているとする。 VBEの標準モジュールに Sub test01() x = Range("A1") MsgBox x j = 1 s = 1 p01: p = InStr(s, x, Chr(10)) If p = 0 Then GoTo p02 MsgBox p st = st & "(" & j & ")" & Mid(x, s, p - s + 1) j = j + 1 s = p + 1 GoTo p01 p02: st = st & "(" & j & ")" & Mid(x, s, Len(x) - s + 1) MsgBox st End Sub を実行すると、B1セルに (1)東京都 (2)新宿区 (3)四谷3丁目 と入ります。 要点は、改行箇所に、Chr(10)という文字コード10の「改行」が はいっているということです。これで改行される 位置を割り出せます。しかし質問では (1)(2)・・を振ってない、改行の先頭もあり どういう基準で振らないのか判りません。 これがプログラムに組めないと、本質問は不可能です。 全角の番号を振るなら Sub test01() x = Range("A1") MsgBox x j = 1 s = 1 p01: p = InStr(s, x, Chr(10)) If p = 0 Then GoTo p02 MsgBox p bng = StrConv(j, vbWide) St = St & "(" & bng & ")" & Mid(x, s, p - s + 1) j = j + 1 s = p + 1 GoTo p01 p02: bng = StrConv(j, vbWide) St = St & "(" & bng & ")" & Mid(x, s, Len(x) - s + 1) MsgBox St Range("C1") = St End Sub

hattigo
質問者

補足

1つのセルに対して複数箇条書きがあります(もともと(1)(2)(3)は入っています) 例) (1)あいうえおかきくけこさしすせそ (2)たちつてとなにぬねのはひふへほ (3)まみむめもやゆよ セル設定が折り返しにして表示になっているため(セルの幅が決まっている表になっています) (1)あいうえおかきく けこさしすせそ (2)たちつてとなにぬ ねのはひふへほ (3)まみむめもやゆよ こんな感じになっています これを (1)あいうえおかきく  けこさしすせそ (2)たちつてとなにぬ  ねのはひふへほ (3)まみむめもやゆよ という具合に、(1)(2)(3)だけ頭を揃えて、折り返した次の行の頭をひとつ下げたいのです 量が膨大のため、これを一発で修正するのは不可能なのでしょうか?

関連するQ&A

  • Excelのセル内改行について

    Excelのセル内に改行を含むデータが入力されています。 Excelでコピー&ペーストを行えば問題ないのですが、 メモ帳にペーストすると改行が ↑ と表示されてしまい、 1行になってしまいます。 メモ帳にペーストしてもセル内で改行されているように 改行したままで貼り付けを行うことは可能でしょうか? Sheet1:A1 あいうえおかきくけこ さしすせそ たちつてとなにぬねのはひふへほ メモ帳:貼り付け あいうえおかきくけこ↑さしすせそ↑たちつてとなにぬねのはひふへほ

  • セル内で改行された文字列を1行ずつ他のセルに移す

    excelで、こんなことできますか? book1で、セル内に下のような改行した文字列があり、それを入力したら、 book2に、文字列を1行ずつ他のセルに取り出したいのですが…できますか? book1 (セルは折り返して全体を表示する) book2 (仕上げの画面) A         A あいうえお                    1 あいうえお 1 かきくけこ                    2 かきくけこ さしすせそ                    3 さしすせそ → 4 たちつてと 2 たちつてと                    5 なにぬねの なにぬねの                     6 はひふえほ 3 はひふへほ 教えていただけると助かります。(ただしマクロはよくわからないのですが…)

  • エクセルで、「セル内改行」を自動化したいのですが・・・。

    今回もお世話になります。 今回の目的ですが、作業の自動化、 もしくは、簡略化にあります。 例えば、以下の様な文字列の書かれた テキストファイルがあるとします。 あああああああああああ。 ああああ、ああああああ、ああああああああああ。 あああああ、ああああああ。 あああああああああああ。 これをこのまま読み込むと、 一行目:A1 二行目:A2 という感じで読み込まれます。 これ自体は、全然問題ないのですが、 その後に、セル内改行(Alt+Enter)を手作業で入れ、 文章を整えているのですが、非常に時間が掛かります。 これをマクロなどで簡略化できるか 調べているのですが、良い方法が見つかりません。 そこで、テキストエディターで、 セル内改行と解釈してくれる記号を埋め込み、 エクセル側で、セル内改行に変換できないだろうかと、 思いつきました。 次のようなイメージです。 ("\n"を、セル内改行文字と仮定します。) あああああああああああ。 ああああ、\nああああああ、\nああああああああああ。 あああああ、\nああああああ。 あああああああああああ。 これを読み込んだら、"\n"の位置で セル内改行が入ったら便利かと・・・。 このやり方以外でも構いませんので、 何か良い方法は無いのでしょうか!? ちなみに、作成したい数は、 大体50ファイル位です。 テキストファイルを 特定のルールに沿ったエクセルに変える作業です。 PC環境は、 OS:Windows XP Home Edition ソフト:Excel 2000,WZ_EDITOR です。 よろしくお願いします。

  • エクセル セル内での改行はどのように?

    エクセルをつかって、 一つのセル内で改行を入れるには どのようにすれば良いでしょうか。 エンターキーを入力すると次のセルへ移動してしまうし、 スペースを入力すると、所望の頭位置から文字入力ができないんですよね。 どうぞ、宜しくお願いします。

  • エクセルで改行したものをメモ帳に貼り付け

    10字~50字程の全角文字がランダムに入っている列があり、それを20字以上の場合は20字で改行された状態にしてメモ帳に貼り付ける必要があるのですが、何か良い方法はありませんでしょうか。 具体的には、 ------------------------------------------------------------------------ あいうえおかきくけこさしすせとたちつてとなにぬねのはひふへほまみむめもやゆよん ↓ あいうえおかきくけこさしすせとたちつてと なにぬねのはひふへほまみむめもやゆよ ん ------------------------------------------------------------------------ という状態でメモ帳に反映させたいです。 エクセルでの改行は、メモ帳にダブルクォーテーション付きで反映されてしまうため、困っています。 関数でもマクロ処理でも構いません。 最終的にメモ帳に改行したものが反映されていればOKです。 できれば、指定した範囲のセル全てそれぞれが一度で改行、メモ帳に反映されると助かります。 どなたか、力を貸してください。。

  • 【Excel VBA】セル内に改行を挿入したい

    セル内で左から数えて10文字毎に改行(折り返し)させたいのですが、 どのようにコーディングすればよろしいでしょうか? 例) セルA1の値が "あいうえおかきくけこさしすせそたちつてとなにぬねの" の場合、 "あいうえおかきくけこ さしすせそたちつてと なにぬねの" としたいです。 ※セルの値は、CSVから自動取得して貼り付ける仕様になっています。  またセルの書式設定は、"折り返して全体を表示する"に事前に設定します よろしくお願いします。

  • エクセルのセル内改行のエクスポートについて

    システムの設計で、人が手入力した情報をtsvファイルにエクスポートして、そのファイルをシステムで取り込もうと検討しています。 けれども、元ファイル内に、エクセルのセル内改行が含まれていて、それをどうしても何かの記号に置換して、改行を詰めてテキストファイルに吐き出すことができません。 やりたいことは以下になります。 1.エクセルの改行を、テキストに吐き出すときには詰めたい。 2.テキストファイルで、改行は詰まっているけれど、変わりに別の文字「"」や「|」などに置換されていたい。 ややこしいですが、どなたか教えてください!

  • EXCELの表でセルの中の文字の改行について

    EXCELでよく表を作っていますが、表のセルの中に文章あるいは長い文字のられつを入れたときの質問です。セルの書式設定で、「折り返して全文を表示する」にチェックを入れることが多いのですが、折り返されたとき、それ以降の文字は2行目の先頭にいきますよね。そうでなく、1行目の途中で改行して、それ以降の文字を2行目に動かしたいと思うのですが、エンターを押して改行を実行しようとしても、あるいは、スペースで空白を挿入する形でやっても、途中で改行できませんよね。これらの手法はワードではよく使いますが、EXCELでは無理なのでしょうか。

  • Excel 2016 で一つのセル内で改行したい

    Excel で一つのセル内で改行する方法をお願いいたします 列と行を広くして一つのセル内に複数行記入したいのです 書式設定では 折り返して全体を表示する         縮小して全体を表示する        セルを結合するが有りますが        セル内での改行が有りません 前の文字をスペースで送ると改行らしき事は出来るのですが文字の並びがズレて来るのでよろしくお願いいたします

  • EXCELでひとつのセルの中で改行したいときは?

    どうもこんにちは。 仕事を押し付けられて困っています…。 EXCELで表を作れといわれています。 手描きで描かれた見本どおりに表をつくらねば ならないのですが、 一つのセルに2行、3行と文が書かれています。 こんな感じです。 環境と 保全を 図る活動 このとおりに入力したいのですが 改行したいところでENTERを押しても 改行されずにただ下のセルにカーソル?が移るだけ… 上のとおりに入力するにはどうすれば良いのでしょうか。 私はWORDは使えますがEXCELは簡単な何のひねりもない 表を作ったことが数回あるくらいの技量しかありません。 会社にはいま入門書もなく検索しようとしても うまいキーワードが思いつかず・・・。 どうかお知恵をお貸しください。御願いします!