• ベストアンサー

リンクさせた文字列を、任意の位置で,複数回数,折り返したい場合・・・

nishi6の回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

QNo.104176『リンクしてきたデータの文字列を折り返すには・・・???』で回答した下記モジュールでできませんか? 例えば、A1の文字を5文字目と10文字目で折り返す時は、   =Orikaeshi2(A1,5,10)  ですが 5文字目で3回改行したい時は   =Orikaeshi2(A1,5,5,5,10)  とします。 動作確認済みですが、別の意味でした???当然、文字列があるセルとは別のセルに書くことになります。 標準モジュールに貼り付けます。(再掲)ユーザー定義関数名はOrikaeshi2に変えています。 Public Function Orikaeshi2(Bunsyo As String, ParamArray aryNagasa() As Variant)   Dim L As Integer 'カウンタ   Dim mojisuu As Integer '1行文字数   Dim wkBunsyo As String '処理用変数   'Bunsyo = " " & Bunsyo '先頭に空白   For L = 0 To UBound(aryNagasa())     If L = 0 Then '改行は1回しかない場合       mojisuu = aryNagasa(L)     Else '改行が2回以上ある場合       mojisuu = aryNagasa(L) - aryNagasa(L - 1) '1行の文字数     End If     'wkBunsyo = wkBunsyo & Left(Bunsyo, mojisuu) & vbLf & " "     wkBunsyo = wkBunsyo & Left(Bunsyo, mojisuu) & vbLf     Bunsyo = Mid(Bunsyo, mojisuu + 1) ’改行より右の文字部分   Next   wkBunsyo = wkBunsyo & Bunsyo '残りの文字部分   Orikaeshi2 = wkBunsyo End Function

iillyy
質問者

お礼

お久しぶりです。 またお会いできて、感激です。 今後もお世話してください。 ところで・・・ 以前に作っていただいたものは、指定が昇順でないと・・・ということで、LEN関数を使ってみたのでした。 かなり単純に・・・3行くらいで(笑)。 もう1回、作っていただいたものを勉強し直してみます。 目に留めていただけて、感謝感激。 そろそろ帰りますので、また後日、この場所を見てください。 ではー。

関連するQ&A

  • Excelの文字列と文字列の連結

    A1のセルにはj50 C1のセルには01(ユーザ定義で00の書式) この二つの数値をCONCATENATE()関数を用いて文字列を 連結するとj501となってしまいます。 C1のセルを文字列の書式にするとうまくj5001と表示されますがそれ以外に方法はないでしょうか?

  • リンクしてきたデータの文字列を折り返すには…???

    リンクして引っ張ってきたデータを、 何文字目で改行するか,その都度決めることはできますか? リンクしてくるデータが、毎回同じ文字数目で改行したいわけではなくて、 今回は8文字目と16文字目で折り返したい… 今回は9文字目と20文字目で折り返したい…など。 ついでに!!! 折り返した文字列の頭に1文字空白を挿入したいのですが。 そんな贅沢でワガママなことはできますか? もしかして、申し上げている意味自体が不明でしょうか?

  • Excelにて任意の位置の文字列を抽出したい

    Excelにて任意の位置の文字列を抽出したい セルA1に、あたい1(837,1077,132) セルA2に、あたい2(657,100,32) セルA3に、あたい3(20,10000,888) のような値が入っています。 ここから、132、32、888を取り出したいのですが、どのような式を入れたら良いでしょうか? Right関数だと上記のように桁数が2桁と3桁と混在している場合に抽出できませんでした。

  • EXCELで文字列の特定の文字の位置を知る方法

    EXCELで文字列の特定の文字の位置を知る方法 EXCELでセル中の文字列、例えば、"abc 4/3 5/5 6/4" の最後の"/"の位置を知る方法を関数の組み合わせで出来ますか? 教えてください。"/"の数は任意で最後の"/"の位置を知りたいのですが??? どうかよろしくお願いします。VBAでなく関数の組み合わせでお願いします。

  • 文字列中の任意の位置の文字取得

    VB6の勉強をしております。 OSはWindowsXPです。 すごく簡単な質問なんですが、C言語のように、文字列中の任意の位置を指定する方法はVB6には無いのでしょうか? 例) C言語:str[1] 添え字で指定出来る VB6:???  思いつく方法はMidを利用し、任意の位置の文字を取得する方法なんですが、それしか無いのでしょうか? 以上、よろしくお願いいたします。

  • エクセルVBA 文字列複数行・列連続連結

    エクセルVBA 文字列複数行・列連続連結でお教え下さい A列に基本文字(縦順) B列~F列に複数行データー(文字・時間) 文字結合時に改行 例 A2&B2&改行&A3&C2&改行&A4&D2&改行・・・・・ 次のデーター行 A&B3&改行&A3&C3&改行&A4&D3&改行・・・・・ データーの最終行まで連続で このような複数行あるデーターの連続文字列連結をしたいのですが・・・ 文字列連結後は 1.指定セルに貼り付け 2.クリップボードに貼り付け 3.テキストファイルに保存 よろしくお願い致します

  • エクセルで0表示以外のセルの文字列を結合する方法

    エクセル(2003)で文字列の結合を「&」や「CONCATENATE関数」を使っておこなっていますが、文字列の空白または0表示の箇所のセルがあると「文字列000文字列00」のように「0」が表示されてしまいます。IF関数を併用してやっても「0」が表示されます。どのようにしたら「文字列 文字列」のように0表示なしで結合できるでしょうか。教えて下さい。現在、約180のセルにある文字列を1つに結合しようとしています。そのうちの結合文字列は多くて20ぐらいです。また、各セルの文字列はVLOOKUP関数により返しています。よろしくお願いします。

  • VLOOKUP で文字列の検索値の場合

    検索値が値でなく文字列で2種類ある場合、AND関数をいれたらと思うのですが、うまくいきません。 VLOOKUPでは無理なのでしょうか?

  • 文字列を取り出す

    A列に[ No.××× ] あああああ・・・と入力されています。 毎回入力される行数が違います(100~300行) B列にNo.×××という文字列だけ取り出すために下記の関数が入っているのですが A列に入力のあった分だけをマクロで処理できませんか。 =LEFT(RIGHT(A2,LEN(A2)-FIND("[ No",A2,1)),8) 現在は300行目までこの関数が入った状態で、エクセルが重い気がします。

  • Accessで文字列検索

    Accessであるテキストボックスに入ってるデータから任意の文字列の位置を知りたくて、 関数を使ってみました。 使った関数はFINDとSEARCHですがどちらもダメでした。 Accessで使える文字列検索関数はないのでしょうか?