• ベストアンサー

セル内の長文テキストの分割

Sinogiの回答

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.4

となりのセルにデータがあるとのことなので、A列でオリジナルセルの直下に分割された文言を挿入するマクロをつくってみました。 区切り記号は ^ を使用します。 ^ は手作業で希望の位置に入れてください。 文頭/文末には^は無いものと考えています。 ^の入ったオリジナルデータは残るようにしています。 ご参考に Option Explicit Sub Strdiv() Dim StrW() Dim StrNum() Dim RepStr, RepWord, StRow, WorkCount, NumStr, WorkLen, WordMax, WorkStr, SpltNum, WR NumStr = Cells(1, 1).End(xlDown).Row ReDim StrNum(NumStr) '区切り数 StrNum(0) = 0 For RepStr = 1 To NumStr WorkStr = Cells(RepStr, 1).Value WorkLen = Len(WorkStr) StrNum(RepStr) = 1 SpltNum = 1 '区切りの最初 For RepWord = 1 To WorkLen If Mid(WorkStr, RepWord, 1) = "^" Then ' ^があれば区切記号 StrNum(RepStr) = StrNum(RepStr) + 1 If StrNum(RepStr) > WordMax Then WordMax = StrNum(RepStr) '区切り数の最大値 ReDim Preserve StrW(NumStr, WordMax) End If StrW(RepStr, StrNum(RepStr) - 1) = Mid(WorkStr, SpltNum, RepWord - SpltNum) SpltNum = RepWord + 1 End If Next RepWord StrW(RepStr, StrNum(RepStr)) = Mid(WorkStr, SpltNum, RepWord - SpltNum) Next RepStr WR = 0 For RepStr = 1 To NumStr WR = WR + StrNum(RepStr - 1) For RepWord = 1 To StrNum(RepStr) Cells(RepStr + WR + RepWord, 1).Insert shift:=xlDown Cells(RepStr + WR + RepWord, 1).Value = StrW(RepStr, RepWord) Next RepWord Next RepStr End Sub

naogo
質問者

補足

ありがとうございます! これがしたかったんです! すばらしいです。 ほんとにありがとうございます。 >^の入ったオリジナルデータは残るようにしています。 できたら、オリジナルデータは消去したいのですが、どうしたらいいでしょうか? 教えていただけると大変ありがたいです。 よろしくお願いいたします。

関連するQ&A

  • Word2013の表内セルへの文章コピーについて

    Word2013を使っているのですが、表を作成後あるセル内に TEXTファイル内の文章をコピーして、ペーストすると、 下記のように2行目から1文字明けて表示されます。 尚コピーした文章は、改行なしの1行の文章です。 これをの断ずれ?を直したいのですが、どうやればよいのでしょうか? ーーーーーーー 今日は朝から|  雨模様です|  傘をもって|  出勤します| ーーーーーーー よろしくお願いいたします・

  • 【エクセル】セルではなくテキストにリンクを貼りたいのですが。

    ごく基本的なことであればすいません・・・。 過去のQ&Aを調べてみてもそれらしきものがなかったので。 エクセルで「セル」ではなく、文章中の一部のテキストにリンクを貼りたいのですが、どのようにすれば良いのでしょうか? また、リンク先は通常のWEBページのアドレスです。 よろしくお願い致します。

  • エクセルで印刷されないセルの表示の仕方???

    WinXPエクセル2003です。他の人からエクセルのデータを頂いて、開くと、A1のセルに画面上では表示されている文章が(四角で囲まれいますがテキストボックスではないような…)印刷プレビューでは表示されていません。どうやったらこういうことが出来ますか?右クリックの「コメント」ではないようです。あと他のセルに移動すると、文章は消えます。ドラックもできますが、この文章自体はA1のセルのときだけ表示されます。

  • 新潟県と三重県、地方別にするとどの地域なの?

    初めましてこんにちは 新潟県と三重県なのですが、この県を東北地方とか中部・北陸地方という分類にする時、どこに入るのが正解なのでしょうか? あちこちのサイトをのぞいてみるのですが、新潟県は東北に入っていたり中部にいたり、三重県が近畿だったり中部・北陸だったり東海だったりします。 どこかに正しい情報が掲載されているサイトはないでしょうか。 またこの2県はどこに分類されるのが正解なのか教えてください。 よろしくお願いしますm(_"_)m

  • 新潟と沖縄は何地方?

    日本には「○○地方」という区分がありますが、新潟県と沖縄県は何地方なのかがあやふやな感じがします。 まず新潟県ですが、一般的には北陸地方といわれていますが、NTTドコモや電力会社は新潟県を北陸地方として扱っていません。NTTドコモからは中央(関東)・電力会社では東北と扱われています。 沖縄県も、NTTドコモのように九州とみなしたり、KDDIや電力会社のように九州とは別とみなしたりします。 結局、新潟と沖縄は何地方になるのでしょうか?また、企業によって地方のみなし方に違いがでるのは、なぜでしょうか?

  • 北陸地方の人ってどんな人?

    北陸地方の人って、どんなイメージですか? (ここでは新潟県は除き、富山県、石川県、福井県とします。) 福井県の人って、近畿地方ぽさあるんでしょうか? あまり出会ったことないので分かりません。 ちなみに、新潟県の人は東北の人に近いイメージあります。 ※ 人それぞれであり、一概には言えないというのは置いておいて、ご回答いただきたくお願いします。

  • EXCEL2010のテキストボックスについて

    テキストボックスに文字数制限はありますか? セルA1に文字列とセル値を&でつないだ文章を=の計算式で入力しています。 それをテキストボックスに=で取り込んでいるのですが、途中で文章が切れてしまいます。 文字数制限があるのでしょうか? この制限を解除する方法はないでしょうか? windows7 の excel2010です。 ご回答宜しくお願い致します。

  • 日本の地方区分はどうして不統一?

    日本は 東北地方、関東地方とかに区分されます。 しかし、例えば 新潟県が北陸地方に入ったり、入らなかったり、三重県も 東海地方だったり、近畿地方だったり と、どうして、地方区分が仕方が統一されていないのでしょうか?

  • トラベルについて

    新潟県に友達などがいるかと思います。 私は、新潟県といっても湯沢町に仲間(祭りの分も含む)もいます。 「東北地方(秋田県)から祭りに参加しているのは私だけ」って言われていますが、本当にそうなんでしょうか?  もし、本当にそうであればご意見聞いてみたいと思います。 

  • セルの文字列を取り出して一つのセルに入れる方法

    セルの文字列を取り出して一つのセルに入れる方法 こんにちは。 VBAの初心者のものです。 データ整理をしていたのですが、 次の様な場合、どのようにすればいいでしょうか。 例) 年度別、都道府県別の地震の発生件数のデータがあります。 これで1999年の地震が起こった都道府県を抽出するとします。 1999年の列でオートフィルタをかけ別のシートでまとめようと思います。 各年度でオートフィルタをかけて、次のようにまとめます。 1999年 北海道、宮城県、東京都 2000年 新潟県、静岡県、岡山県、石川県 2001年 福島県、宮城県、千葉県 2002年 愛知県、三重県、京都府 なお、都道府県のところはできれば一つのセルにいれたいと考えています。 1999年の場合なら Range("").value=北海道のセル&"、"& 宮城県のセル &"、"&東京都のセル 各都道府県の行番号が 北海道「1」 宮城県「4」 東京都「13」 ならば、 range("").value = range("A1").value&"、"&range("A4").value&"、"&range("A13").value というようになればいいのですが、 オートフィルタ後に行数をカウントし、次のようなコードにすると、 range("").value = range("A1").value&"、"&range("A2").value&"、"&range("A3").value 1999年 北海道、青森県、岩手県 となりオートフィルタ前の値が返されてしまいます。 このセルをどのように指定したらいいのかわかりません。 もしこれができないのであれば 各列に一つずつ(一つのセルに一つの都道府県)入れていく方法でも構いません。 1999年 北海道 宮城県 東京都  というような感じです。 よろしくお願いします。