• ベストアンサー

excelで続けて打った文字を

Excelで続けて打った文字を「abcdefghij・・・・」を5文字ずつ改行する方法を教えてください sheet1のA1のセルに「abcdefghijklm・・・・」 A2のセルに「bihojmpDPlon・・・・」 A3のセルに「opknobijm・・・・」 という入力があるものを sheet2の「A1」に「abcde」「A2」に「fghij」「A3」に「klm」 「A4」に「bihoj」「A5」に「mpDPl」「A6」に「on」 「A7」に「opkno」「A8」に「bijm」 のように5文字ずつ区切って表示させたいのです。 vbaでやってみましたが、うまくいきません。 どうか教えてください。 よろしくお願いします。 Windows XP pro、Excel2000です

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.7

沢山回答がありますが・・・基本形?かな。 Sub test() Dim i As Integer Dim j As Integer Dim tmp As String For i = 1 To 3 tmp = Cells(1, i) For j = 1 To 10 If Len(tmp) > 5 Then Cells(j, i) = Left(tmp, 5) tmp = Right(tmp, Len(tmp) - 5) Else Cells(j, i) = tmp Exit For End If Next Next End Sub

mnakayoshi
質問者

お礼

私のつたない説明の意味をお汲み取りいただき本当にありがとうございます。 本当にずうずうしいお願いなんですが、sheet1にはA1~A10000ぐらいまでデータが入っています すべてのデータをsheet2に1セルに1文字ごと5列目で改行するように書き出したいんです。 sheet1のA1にABCDEFG、A2にHIJKLMNと入っていたら sheet2のA1に「A」B1に「B」C1に「C」D1に「D」E1に「E」 A2に「F」B2「G」, A3に「H」B3に「I」C3に「J」D3に「K」E3に「L」 A4に「M」B4「N」 という具合です。 本当に説明がまちがっていて申し訳ありませんでした。 もし教えていただけたら大変助かります。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (6)

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.6

No.3 です。すみません。 RowとColumnを間違いました。 Sub StrEdit() Dim Rng As String Dim wIx As Integer Dim wStr As String Dim wStr2 As String Dim ExitFlg As Boolean Dim wRow As Integer ' Rng = "A1:A50" wRow = 0 For Each c In Worksheets("Sheet1").Range(Rng) wStr = c.Value If wStr <> "" Then ExitFlg = False Do While ExitFlg = False wRow = wRow + 1 If Len(wStr) > 5 Then wStr2 = Left(wStr, 5) wStr = Mid(wStr, 6) Else wStr2 = wStr ExitFlg = True End If Worksheets("Sheet2").Cells(wRow, 1) = wStr2 Loop End If Next End Sub

mnakayoshi
質問者

お礼

ご回答いただきました皆様 本当にありがとうございました。 ものすごく急がされていたので、質問を書き間違えてしまい、 本当に申し訳ありませんでした。 皆様に教えていただいた方法は大変勉強になりました。 皆様に点数を差し上げたいのですがかなわないので私見で決めさせていただきました。 私がまちがったせいで仕事の締め切りの時間が来てしまいました。 今後は落ち着いて質問させていただきます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • myeyesonly
  • ベストアンサー率36% (3818/10368)
回答No.5

あ、いけない! 式を入れる場所を間違えましたね。 Sheet2に式を入れます。 A1 =mid(sheet1!a1,1,5) A2 =mid(sheet1!a1,6,5) A3 =mid(sheet1!a1,11,5) A4 =mid(sheet1!a1,16,5) ・ ・ ・ An =mid(a1,5*(n-1)+1,5) 失礼しました。m(__)m

mnakayoshi
質問者

お礼

すいません。説明が悪かったのかもしれませんが 1文字を1セルに入れたいのです。 もしおわかりでしたら教えていただけたらと思います。

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

VBAのことはよく分からないので、 私の場合、Sheet2のA1に以下の式を入れて、ダーっとしたまでコピーします。 =MID(CONCATENATE(Sheet1!$A$1,Sheet1!$A$2,Sheet1!$A$3),5*(ROW(A1))-4,5) 効率的かどうかは分からないですが…。

全文を見る
すると、全ての回答が全文表示されます。
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.3

以下のモジュールで、実行してみてください。 Sub StrEdit() Dim Rng As String Dim wIx As Integer Dim wStr As String Dim wStr2 As String Dim ExitFlg As Boolean Dim wCol As Integer ' Rng = "A1:A50" wCol = 0 For Each c In Worksheets("Sheet1").Range(Rng) wStr = c.Value If wStr <> "" Then ExitFlg = False Do While ExitFlg = False wCol = wCol + 1 If Len(wStr) > 5 Then wStr2 = Left(wStr, 5) wStr = Mid(wStr, 6) Else wStr2 = wStr ExitFlg = True End If Worksheets("Sheet2").Cells(1, wCol) = wStr2 Loop End If Next End Sub

mnakayoshi
質問者

お礼

すいません。私の説明がまちがっていました。 やりたかったことは 「A1」のセルに「abcdefghijklm・・・・」という文字を別シートの 「A1」に「a」「B1」に「b」「C1」に「c」「D1」に「d」「E1」に「e」「A2」に「f」「B2」に「g」「C2」に「h」「D2」に「i」「E2」「j」に「A3」に「k」「b3」に「l」・・・と入れたかったのです。 本当に申し訳ありませんでした。 丁寧にご回答いただき誠に申しわけありません。 でも大変役に立つコードを教えていただいてありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • myeyesonly
  • ベストアンサー率36% (3818/10368)
回答No.2

こんにちは。 まず、以下の内容を入力します。 A2 =mid(a1,1,5) A3 =mid(a1,6,5) A4 =mid(a1,11,5) A5 =mid(a1,16,5) ・ ・ ・ An =mid(a1,5*(n-2)+1,5) 入れ終わったら、A2からAn(つまりA段の終わりの列まで)を選択し、右下の角をマウスで摘んで下にドラッグ(ずりずりする)すると各段での式が入力されます。

全文を見る
すると、全ての回答が全文表示されます。
  • castoff
  • ベストアンサー率15% (7/46)
回答No.1

vbaが解るのであれば。 原本の文字列を取得し(abcdefghij・・・・) mid関数で5文字ずつ取得して該当のセルに --------------- b=0 for i = 1 to len(原本) step 5 'パターン1 a(b) = mid(原本,i,5) b = b + 1 または 'パターン2 該当セル = mid(原本,i,5) next --------------- 見たいな感じに 入れていけばよいのでは?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELへの文字数の多いテキストの取り込み

    テキストデータで70000文字で改行して、全部で40行あるデータがあります。これをEXCEL2010のシートに取り込みたいのですが、外部データの取り込みで行うと、1セルあたり32767 文字で溢れてしまいます。 A1=30000文字 B1=30000文字 C1=10000文字 改行 D1=30000文字 E1=30000文字 F1=10000文字 改行・・・・・ と取り込むにはどうしたらいいでしょうか。テキストデータはデスクトップにあります。 VBA等教えて下さい。よろしくお願いします。

  • Excelシートの改行削除

    環境:Excel2000+VBA Excelシートに入っているセル内の改行を全て削除 したいのですが、よい方法はないでしょうか? よろしくお願いします。

  • Excelマクロにて文字列連結

    現在Excelのマクロにて文字列の連結を行っているのですが、 繋いだ文字列を改行を付けて連結を行いたいです。 セルとセルの中の文字列を改行を付けて連結するにはどうしたらいいのでしょうか? 例 A1セル「あああ」 B1セル「いいい」 C1セル「あああ       いいい」 Worksheets(sheet1).Range("C1").Value = Worksheets(sheet1).Range("A1").Value + Worksheets(sheet1).Range("B1").Value をすると 「あああいいい」と1行で表示されてしまいます。     ↑ ここに改行を入れるにはどうしたらいいのでしょうか? 以上、宜しくお願いします。

  • EXCELで文字を数字に変換したい

    お世話になります。 エクセルシート上の見た目数字、実は文字列という値を、数字に変換したいのですが、EXCEL-VBAでどのように処理すればいいのでしょうか? 1.セルから文字列型の見た目数字の値をとってくる。 2.VBAで文字列型から整数型に変換する。 3.元のセルに貼り付ける。 4.セル書式を数字のカンマ形式にする。 リンクではなくこのような処理をしたいのですが、どうすればいいのでしょうか?

  • EXCEL VBA 別シートの文字をシート内で検索

    excel2003 VBAで SHEET2に格納されているセルの文字をSHEET1のB列1~9000程度までの文字列の中で一致または部分一致するものがあればそのセル(B列のセル)をSHEET3に順次A列に出力したいのですが、うまくできません。SHEET2に格納されている場所はA列で(SHEET1、SHEET2の文字とも増える可能性あり) 宜しくお願いします。

  • セル内の文字をシート名として使いたい。

    Excel2000または2002です。 セル内の文字例えばA1に「あいう」と入力されていたら その「あいう」というのをシート名として使うことはできますか? VBAでよろしくお願いします。

  • エクセルで、セルに入力された文字を別なシートで数字

    エクセルで、セルに入力された文字を別なシートで数字で表すにはどうしたらいいのですか? いま、会社でエクセルVBAを使って表を作っています。 そこで、例えば、 Sheet2で、セルA1に○○会社 ~、セルA2に△△会社と入力したら、 Sheet1で、数字で、2 と表すには、どういう風に作ればいいのでしょうか?

  • Excelを2つ起動してセルを参照する方法

    ご質問させていただきます。 Excel2007を2つ起動して、他方のシートのセルを参照したいのです。 具体的に説明いたしますと、1つ目のExcel2007をExcel(1)と呼び、2つ目のExcel2007をExcel(2)と呼ぶことにします。Excel(2)のsheet1のA1セル~A48セルまでcalculateイベントでリアルタイムに変化する値が入っています。それらの値をExcel(1)のsheet2のB1セル~B48セルで参照したいのです。 できるのでしょうか? どなたか教えていただけないでしょうか? よろしくお願いいたします。 もしVBAを使わなくてもできるようでしたら、そちらの方法も教えてください。 よろしくお願いいたします。

  • Excelセル内の改行を含む文字列の1行目抽出

    Excelセル内の改行を含む文字列があり、関数を使って、その1行目だけ抽出したい。 たとえば、下記のような式を書きました。「改行コード」おかしみたいで動作しません。 Left("A1", Find(vbCrLf, "A1")) (改行コードをさがして、そこまでの文字列を切り取る) これをVBAで書く方法があれば、コードを教えてください!

  • Excelのセル内での文字の勝手な折り返しをやめた

    こんにちは、不思議な現象が出ていて、悩んでいます。 どなたか同じ現象になった方はおられますか? セル内に大量の文字(900文字程度)が入っています。 セルの文字の折り返しにチェックが入っています。 そのような状況の中で、規則性のない行で改行されてしまいます。 +----------------------------------------+ |あああああああああああああああああああああ| |あああああああああああああああああああああ| |あああああああああ                |←途中で行が変わってしまいます。 |あああああああああああああああああああああ| |ああああああああああああああああああ    | |あああああああああああああああああああああ| +----------------------------------------+ 3行目の語尾に改行コードは入っていません。 メモ帳などへ上記の内容を貼り付けて確認しても、改行コードは含まれておりません。 自分が望んでいる結果は以下のような感じで、Excelの自動折り返しのみで そのまま表示したいです。 +----------------------------------------+ |あああああああああああああああああああああ| |あああああああああああああああああああああ| |あああああああああああああああああああああ| |あああああああああああああああああああああ| |あああああああああああああああああああああ| |あああああああああああああああああああああ| +----------------------------------------+ 使用している PC は XP で、Excel は 2007 を使用しております。 何かExcelの制限があるのでしょうか? よろしくお願いします。