- ベストアンサー
リンクしてきたデータの文字列を折り返すには…???
リンクして引っ張ってきたデータを、 何文字目で改行するか,その都度決めることはできますか? リンクしてくるデータが、毎回同じ文字数目で改行したいわけではなくて、 今回は8文字目と16文字目で折り返したい… 今回は9文字目と20文字目で折り返したい…など。 ついでに!!! 折り返した文字列の頭に1文字空白を挿入したいのですが。 そんな贅沢でワガママなことはできますか? もしかして、申し上げている意味自体が不明でしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
質問では、規則性はなさそうだし、折り返し数も2個以上かもしれないということで、指定した文字数で折り返すユーザー定義関数を作りました。手順も書きましたのでチャレンジしてみて下さい。最初はみんな超初心者です。 折り返し箇所の指定は任意の個数可能です。長くなるので、9個目で改行、6個目で改行のように指定を昇順に指定しない場合は対応していません。 扱うのは全角文字の文章と想像しています。(半角でもOKですが)『ついでに』の先頭の空白は全角空白にしています。 使い方ですが、今、Bシートの該当セルは =VLOOKUP(・・・・・) となっていると思いますが、これを =Orikaeshi(VLOOKUP(・・・・・),8,16) や =Orikaeshi(VLOOKUP(・・・・・),9,20,26,32) のようにします。 また、該当セルの書式設定の配置は折り返して全体を表示するにチェックを入れておきます。うまくいけばいいえすが。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、 挿入→標準モジュール で標準モジュールを挿入しそこに下記コードを貼り付けて下さい。 '指定文字数で折り返し。(先頭に全角空白を挿入) Public Function Orikaeshi(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 mojisuu = aryNagasa(L) Else mojisuu = aryNagasa(L) - aryNagasa(L - 1) End If wkBunsyo = wkBunsyo & Left(Bunsyo, mojisuu) & vbLf Bunsyo = Mid(Bunsyo, mojisuu + 1) Next wkBunsyo = wkBunsyo & Bunsyo Orikaeshi = wkBunsyo End Function
その他の回答 (3)
- TAGOSAKU7
- ベストアンサー率65% (276/422)
どもども田吾作7です。 急いで書きます。 改行するからには、何らかの理由があるから改行するんですよね? たとえばVlookUpでもってくるデータが文章で、「本日は晴天なり。だけど明日は雨。」というデータを持ってくるとします。 そのデータが表示では「本日は晴天なり。だ(改行)けど明日は雨。」とならないように、読点の次の位置から改行を行うという規則性を持たせたら、「本日は晴天なり。(改行)だけど明日は雨。」というようになります。 あっΣ( ̄ロ ̄lll) 待ち合わせの時間が・・・急がねば・・・ では出かけます。
- TAGOSAKU7
- ベストアンサー率65% (276/422)
どもども田吾作7です。 リンクしたデータは基本的に同じデータ値を持つために、改行を任意でというのはできません。 [A1]の内容が1999/7/14 [B1]に数式=A1だったとします。その[B1]の表示を1999年7月14日にするのは可能です。これは同じデータ値なのですが、表示形式を加工することで実現可能です。 しかし、行いたいことは改行ですよね?改行は"あ"とか"E"とかと同様に"(改行コード")という文字がデータに必要になります。 [A1]の内容"abcdefg"を[B1]の内容"abcd(改行コード)efg"と変更するわけですから、データ値が変わることになります。ですのでVLOOKUP関数だけではムリだと思います。 改行するのに規則性はありますか? それと今日は午後3時まで予定があるので、以後すぐの回答は出来ませんので、、、 _(._.)_ でわでわ
お礼
ご親切にありがとうございます。 規則性とは…??? 説明もできなくて、誠に申し訳ありません。 もうお分かりのように、私はパソコンに関して、超初心者なのです。 それでも教えていただけますか?
- TAGOSAKU7
- ベストアンサー率65% (276/422)
どもども田吾作7です。 エクセルの話ですよね? たぶん[A1]のセルに"abcdefg"と入っていて、[B1]のセルには数式[=A1]みたいになっていて、[B1]のセル内容を、任意の位置で改行して表示したいという意味ですか? もうちょっと情報が・・・
補足
エクセルです。 Aシートに情報が入っていて、BシートにVlookupでデータをリンクさせています。 A1セルに”abcdefg”からはアナタ様のご想像通りです。 もしかして、まだ意味不明でしょうか…。 本当にド素人なので、誠にお手数をおかけしますが、 再度お返事をいただけませんでしょうか。
お礼
締め切ってしまってから気がつきました…。 改行ごとの頭に空白を入れたかったのでした。 説明不足で申し訳ありませんでした。 でも、他はすばらしくうまく行きました。 「改行ごとに頭に空白を入れるには?」として、新たに質問をしておきますので、 また機会がありましたらお世話してください。 ありがとうございました。