CONCATENATE+VLOOKUPでリンクさせている文字列を、任意の位置で折り返したい場合・・・
知恵を貸してください!!!
折り返したい文字数目が毎回変わる場合・・・、
改行したい回数が決まっていない場合・・・、
どのように設定しますか?
CONCATENATEで連結する文字列ごとに改行を加える・・・
かつ、VLOOKUPでリンクさせる文字列のみ、途中で何度改行するかが決まっていない・・・
そんなイメージです。
LEN関数を使って作ってみたのですが、
何度改行するかが決まっていないためだと思うのですが、どうしてもうまく作れません。
助けてくださーい。
No.5ベストアンサー
- 回答日時:
改行箇所を順不同に設定可能としてみました。
同じ数値を設定することもできます。(空白行になります)=Orikaeshi3(A1,10,20,10,5,5) のようにします。
これだと、A1の文字を5個目で2回、10個目で2回、20個目1回で改行します。前回モジュールで設定値をソートしているだけです。
Public Function Orikaeshi3(Bunsyo As String, ParamArray aryNagasa() As Variant)
Dim L As Integer 'カウンタ
Dim mojisuu As Integer '1行文字数
Dim wkBunsyo As String '処理用変数
'改行位置指定を昇順にソートする
Dim num As Integer '入力値数(0から)
Dim j As Integer 'ソート用カウンタ
Dim wk As Variant 'スワップ用変数
num = UBound(aryNagasa())
While num > 0
For j = 1 To num '逆順なら交換する
If aryNagasa(j - 1) > aryNagasa(j) Then
wk = aryNagasa(j - 1)
aryNagasa(j - 1) = aryNagasa(j): aryNagasa(j) = wk
End If
Next
num = num - 1 'ソート対象を減らしていく
Wend
'改行を行う
For L = 0 To UBound(aryNagasa())
If L = 0 Then
mojisuu = aryNagasa(L) '改行が1回
Else
mojisuu = aryNagasa(L) - aryNagasa(L - 1) '改行が2回以上
End If
wkBunsyo = wkBunsyo & Left(Bunsyo, mojisuu) & vbLf
Bunsyo = Mid(Bunsyo, mojisuu + 1)
Next
wkBunsyo = wkBunsyo & Bunsyo
Orikaeshi3 = wkBunsyo
End Function
かなり感激しました。
本当に・・・「感激」としか言いようがないと言うか・・・。
何度もお返事をいただき、ありがとうございました。
これからもよろしくお願いします・・・。
No.4
- 回答日時:
散々質問した結果にしては、申し訳ないのですが、
式では難しい(私の知識ではお手上げ)です。
ごめんなさい。
幾つか試してみましたが、なかなか綺麗に行かなくて...
マクロではいけないのでしょうか?
そのBookにマクロを保存したくなければ、マクロ専用Bookを作るとか。
どうでしょ?
それなら引き続きお手伝いできますが...
残念ですが、式だと私はお手上げです。
この回答への補足
マクロで良いですよー。
と言うか、マクロの方がありがたかったです。
説明不足でした。ゴメンナサイ。
あと、NISHI6さまが記載の通り、実は以前にも知恵を拝借しています。
ですが、お礼欄のとおりで、指定が必ず昇順になるとは限らなかったので、いろいろ考えたのでした。
本当に・・・今度こそ帰りますので、また今度・・・。
ありがとうございました。
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
お久しぶりです。
またお会いできて、感激です。
今後もお世話してください。
ところで・・・
以前に作っていただいたものは、指定が昇順でないと・・・ということで、LEN関数を使ってみたのでした。
かなり単純に・・・3行くらいで(笑)。
もう1回、作っていただいたものを勉強し直してみます。
目に留めていただけて、感謝感激。
そろそろ帰りますので、また後日、この場所を見てください。
ではー。
No.2
- 回答日時:
1行の文字数には何か決まりがあるのですか?
また、1つのセル内で、1行の文字数が統一されない
といったことは有るのでしょうか?
またまた補足要求で申し訳ないですけど、お願いします。
この回答への補足
ごめんなさい・・・。
知識不足で、おっしゃっていることが・・・理解できません・・・。
あいうえお
かきくけこ なら見栄えが良いですが、
あいうえおか
きくけこ となると見栄えが悪いので、改行位置を決めたい・・・というイメージ???
リンクしてくるデータが、「あいうえおかきくけこさしすせそ」かもしれないし、「あいうえおかきくけこ」かもしれない・・・そんなイメージでしょうか???
おっしゃっていること自体が、知識不足で答えられません・・・。
具体的にこれは?あれは?と書いていただけると、お答えできるかもしれないです。
お手数をおかけしますが、またご連絡ください。
お礼ではないのですが・・・
NO.2のお返事を何度も読み返してみて・・・何となく・・・
おっしゃりたいことが分ったような気がしたので、再び。
私の思い違いでなければ、1行の文字数には決まりがありません。
=CONCATENATE(”mmm”,VLOOKUP(・・・FALSE))となっていて、
同じ文字列をリンクしてくる場合でも、表示1では、
mmm(改行)
あいうえお(改行)
かきくけこ(改行)
さしすせそ
としたくて、
表示2では、
mmm(改行)
あいうえおかきくけこ(改行)
さしすせそ
としたい・・・
という感じで、その都度,改行位置を決めたいイメージでしょうか・・・。
うまく説明できずに申し訳ありません。
カフェから返信させていただいているので、次にいつ読むか分りません。
そろそろ帰宅しますー。
ご親切にありがとうございました。(←やっぱりお礼かな???)
No.1
- 回答日時:
任意の位置は文字数ですか?それとも特定の文字列?
Lenを使っているなら文字数のような気がしますが、
セルのプロパティの折り返して表示ではだめなのでしょうか?
でも、セル内に改行を入れると自動的になったような気が...
そうすると、それも駄目なんでしょうね。
特定の文字で改行なら出来そうな気はしますが。
もう少し詳しい情報を下さい。
この回答への補足
特定の文字列ではありません。
今回は10文字目と20文字目・・・とか
次は5文字目と10文字目と15文字目・・・と言うように、
毎回,改行したい位置が違って、かつ改行する回数も決まっていません。
知恵をお貸しくださーい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Chr(13)とChr(10)の違いは?
-
エクセルでセル内改行の複数行...
-
wordで均等割り付けをするとき...
-
PDFの改行URLを有効にす...
-
棒グラフ 横軸の縦書き2列にし...
-
Tera Term のマクロでの改行コ...
-
【エクセル】セル最後にある無...
-
excelで勝手に改行されます
-
バッチで指定ファイルの文末に...
-
EXCEL(VBA) 末尾の改行のみ削...
-
履歴書の志望動機の所で、「ま...
-
イミディエイトウインドウの最...
-
エクセル文字入力でセル内での...
-
Accessにインポートしようとす...
-
パワーポイントのテキストボックス
-
TeraPadで空白を改行に変換する...
-
WordにURLを載せると
-
Excel VBAで改行を含めたセルの...
-
VBA フォームのテキストボック...
-
Excel セル内の最初と最後の改...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
wordの何も書かれていない2ペー...
-
Chr(13)とChr(10)の違いは?
-
履歴書の志望動機の所で、「ま...
-
wordで均等割り付けをするとき...
-
短歌が1行で収まらない場合、...
-
棒グラフ 横軸の縦書き2列にし...
-
【エクセル】セル最後にある無...
-
excelで勝手に改行されます
-
PDFの改行URLを有効にす...
-
VBA フォームのテキストボック...
-
Accessにインポートしようとす...
-
パワーポイントのテキストボックス
-
イミディエイトウインドウの最...
-
Excel VBAで改行を含めたセルの...
-
エクセルでセル内改行の複数行...
-
WordにURLを載せると
-
Excel セル内の最初と最後の改...
-
バッチで指定ファイルの文末に...
-
Tera Term のマクロでの改行コ...
-
Word 途中で勝手に改行してしま...
おすすめ情報