• ベストアンサー

VBAでセル内の文字列を一行にする方法

ExcelのVBAで、セル内に折り返しで3行に書かれている文字列を、各文字列間に空白を1つ入れて、1行につなげるにはどうしたらいいですか

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

以下はアクティブなシート内の全てのセル内改行をスペースに置換えます。 Sub test01() Dim c As Range For Each c In ActiveSheet.UsedRange If c <> "" Then With c .Replace What:=Chr(10), Replacement:=" ", LookAt:=xlPart .WrapText = False End With End If Next End Sub

ganchan59
質問者

お礼

早速の回答ありがとうございます。 やってみたところ、うまくいきました。助かります。 ところで、VBA初心者ですが、よろしければVBAをどのように勉強すれば、このようなプログラムがかけるようになりますか、貴方さまの経験から教えて頂けると幸いです。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

> 貴方さまの経験から教えて頂けると幸いです。 ganchan59さんこんにちは、merlionXXです。 うまくいってよかったですね。 わたしの場合は、他の優秀な方々が書いたコードがどういう意味なのかを自分で調べることが一番勉強になったと思いますよ。 でもまだまだ初心者の域を脱しきれていませんけどね。 ヾ(=^▽^=)ノふぁいと~v

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 質問を読んでみて、折り返し3行が、セルの書式に「折り返して全体を表示する(w)」にチェックを入れてある、という場合がありますね。その場合は、Lf「Chr(10)」 がない、ということもあります。Lf があるなしだけでは、いけないような気がしますが・・・。一体、どっちなのでしょうか?

関連するQ&A

  • VBAで複数列セルに入力されている文字を一行に

    こんにちは。VBAにて下記イメージの複数列セルに入力されている文字を一行に変換しメモに出力すると同時に出力された一行の文字列をコピーした状態にしたいです。セルに記載された文字は「,」カンマで区切った状態で範囲はA3セルからA50位となります。また、セルが結合されていたり空白が存在したり様々です。大変申し訳御座いませんがご教授宜しくお願いします。 あああ → あああ,いいい,ううう,えええ,おおお・・・ いいい ううう  えええ おおお ・ ・ ・

  • Excelで文字列が空白の右側のセルに伸びない方法

    Excelで、ある列の文字列が空白の右側のセルに伸びて表示されますが、これを止める方法はないものでしょうか? 折り返しや文字を小さくするのではなく、尻切れにする方法です。もちろん、列の横幅を伸ばすと全体が表示されることが必要です。

  • VBA 文字が入力されているセルを表示させたい

    ExcelのVBAで 列番号"A列"に文字を適当に打った時 文字が入っている最終セル(行番号)と その最終セルに入っている文字を "C1"のセルに表示させる というVBAを作成したいのですガ… どなたかわかる方教えて下さい 自分が考えたものはVBAが妙に長くなってしまい; Excelのバージョンが2000と古いので 古いのでも動くVBAだと助かります; 宜しくお願いします

  • VBAでセルの移動方法

     エクセルのVBAでセルが何処にあっても、その行の一番左端の列に移動するようにしたいのですが(行は変えずに列だけ)、どうすれば良いのでしょうか?  Selection.End(xlToLeft).Select と打ってみたのですが、一番左まで行かず、途中の空白行等で止まってしまう事があります。  どなたか教えて頂けませんか。

  • セル内文字を切り取りその列の空白セルに貼付け

    B列3行目から添付のようにセル内にカンマを含む文字がありカンマで区切った文字ごとに切り取り矢印右のように同B列の次の空白行に順に貼り付けたく、その際カンマは削除したいのですが行数が多くてできればVBAコードがお分かりなる方宜しくお願いします。 環境はwindows7 office2013です。

  • VBA でセルの文字列に"-"等の文字を挿入したい

    VBA でセルの文字列に"-"等の文字を挿入したい エクセルでA列に品番がずらっと並んでいる状態です。 この品番がすべて"-"が抜けています。 頭から5文字目の後ろに"-"を挿入したいのですがどのようにすればよいでしょうか? 例 55548855→55548-55 また 55548-55→55548855 のように"-"を抜く方もわかれば教えてください。 よろしくお願いします。

  • 複数列セルの文字を一行に変換しコピー

    こんにちは。下記イメージの複数列セルに入力されている文字を一行に変換しメモに出力すると同時に出力された一行の文字列をコピーした状態にしたいです。セルに記載された文字は「,」カンマで区切った状態で範囲はA3セルからA50位となります。また、セルが結合されていたり空白が存在したり様々です。大変申し訳御座いませんがご教授宜しくお願いします。 あああ → あああ,いいい,ううう,えええ,おおお・・・ いいい ううう  えええ おおお ・ ・ ・

  • セル内文字を切取りその行範囲の列の空白セルに貼付

    B列3行目から添付のようにセル内にカンマを含む文字がありカンマで区切った文字ごとに切り取り矢印右のように同B列の次の空白行に順に貼り付けたく、その際カンマは削除したいです。また等間隔の名前の行がある中で枠内の空白に文字を張付けたく等間隔行数枠が多くてできればVBAコードがお分かりなる方宜しくお願いします。 環境はwindows7 office2013です。

  • Excelで1つのセルに入れた複数行の長い文字列をセルの高さを変えずに表示したい

    こんにちは。 Excelについての質問です。 お分かりになる方がらっしゃいましたら教えていただけると幸いです。 Excelのシートに、何行かにわたる長い文字列をコピーしたものを 1つのセルに貼り付けて、全て表示させたいのです。 その時、シートの幅や高さは変えずに、 セル内で「Alt+Enter」で改行されてその高さに収まらない文字列は、 そのまま直下の空いているセルに表示させたいのですが、これは可能でしょうか。 「折り返して全体を表示する」はオフの状態です。 この設定で1行だけの文字列だと幅以上の文字列は自然に横の空白のセルに流れてくれますよね? これを、「Alt+Enter」の複数行ver.でやりたいのですが、 このようなことは可能なのでしょうか。 質問が分かりにくくて申し訳ありません。 他にも、いい方法をご存知でしたらアドバイスをお願いいたします。

  • セル内の文字列操作について

    Excelでセル内の文字列を操作したいのですが、Excelの標準の関数では出来そうにないので、どなたかお力をお貸しください。 1つのセル内に、文字列や数値が複数入っています。 (例) Excel 12 りんご Word 11 このセルを調べて、数値のデータが複数入っている場合、最大値のみを表示させ、残りの数値データは削除したいのです。 (結果) Excel 12 りんご Word この処理の対象はセル内の数値データであって文字列には作用させず、結果的には文字列はそのまま表示させたいのです。 Excelの文字列に関する関数を調べてみたのですが、該当するものがなく、VBAを使用しなくてはならないのかもしれません。処理するデータが大量なため、VBAマクロなどで処理できれば大変ありがたいのですが、どなたかご存知の方がいらっしゃいましたら、ご教授くださいませ。どうぞよろしくお願いいたします。

専門家に質問してみよう