• ベストアンサー

Excelで1つのセルに入れた複数行の長い文字列をセルの高さを変えずに表示したい

こんにちは。 Excelについての質問です。 お分かりになる方がらっしゃいましたら教えていただけると幸いです。 Excelのシートに、何行かにわたる長い文字列をコピーしたものを 1つのセルに貼り付けて、全て表示させたいのです。 その時、シートの幅や高さは変えずに、 セル内で「Alt+Enter」で改行されてその高さに収まらない文字列は、 そのまま直下の空いているセルに表示させたいのですが、これは可能でしょうか。 「折り返して全体を表示する」はオフの状態です。 この設定で1行だけの文字列だと幅以上の文字列は自然に横の空白のセルに流れてくれますよね? これを、「Alt+Enter」の複数行ver.でやりたいのですが、 このようなことは可能なのでしょうか。 質問が分かりにくくて申し訳ありません。 他にも、いい方法をご存知でしたらアドバイスをお願いいたします。

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

  • ベストアンサー
  • ebinamori
  • ベストアンサー率21% (96/439)
回答No.3

やりたいことは 1 A abcdefghijklmnopqrstuvwxyz A1をコピーして 1 B abcdefghi C jklmnopqr D stuvwxyz というふうにすると言うことでしょうか? (それぞれのセルの値がabcdefghi、jklmnopqr、stuvwxyzになる) これだったら次のような式になります。 =IF(LEN(Sheet1!$A$1)-(ROW(C1)-ROW($C$1))*9,MID(Sheet1!$A$1,(ROW(C1)-ROW($C$1))*9+1,9),"") Sheet1!$A$1:コピーしたい対象のセル C1:コピー先のセル $C$1:コピー先の先頭のセル 9:1行あたりの文字数 もう一つの方法はマクロを組むことだと思うのですがクリップボードの 内容の取得の仕方が分からないのでできませんでした。 別途質問していみると良いでしょう。

chupa123
質問者

お礼

アドバイスをありがとうございます。 そうです、そうしたくて質問いたしました。 設定で何とかなるかと思いましたが、 甘かったですね(^^; 詳しく数式まで書いていただきましてありがとうございます! 早速試してみますね!

その他の回答 (4)

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.5

あいているしたのセルとセル結合し、これでダメならポイントを小さくする

chupa123
質問者

お礼

そうですね、結合してしまったほうが早いかもしれないですね。 なにはともあれシートの形を崩したくなかったもので(^^; 一行を他のセルに透かすくらい簡単にできればよかったんですけどねw 皆様、たくさんのアドバイスありがとうございました。 皆さんのアドバイスを元に、いろいろとやってみますね! あいがとうございました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

セル内改行された単位で行を分けるという方法でよいでしょうか? 以下のマクロは選択されているセル内にセル内改行があればその後ろの文字列を下のセルに書き込むマクロです。(セル内で5行なら、シート上でも5行になります)。安全のため、分解したいセルの内容を別セルにコピーしてから試してください(実行結果は元に戻せませんので) Sub Macro() Dim ptr As Long, psw As Boolean  Do While psw = False   With Selection.Cells(1, 1)    ptr = Application.Find(Chr(10), .Value & Chr(10))    If ptr < Len(.Value) Then     .Offset(1, 0).Value = Right(.Value, Len(.Value) - ptr)     .Value = Left(.Value, ptr - 1)     .WrapText = False     .Offset(1, 0).Select     Selection.WrapText = False    Else     psw = True    End If   End With  Loop End Sub マクロはALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行はALT+F8を押して、マクロ名を選択します。

chupa123
質問者

お礼

VBAですね。 VBAはまだ勉強中の身なので(^^; もう少しできるようになったらチャレンジしてみますね! 詳しく記述していただき、ありがとうございました!

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.2

> Excelのシートに、何行かにわたる長い文字列をコピーしたものを 1つのセルに貼り付けて、全て表示させたいのです。 > その時、シートの幅や高さは変えずに、 の制約で実現可能なのは、 1) Excelにテキストボックスを挿入して、テキストボックスに貼り付けする。 2) 「形式を選択して貼り付け」から「Microsoft Office Word文書オブジェクト」を貼り付けする。 3) 一度Excelに貼り付けた後、列幅を指定して「文字の割付け」を行う。 の3通りだと思います。 1)はフォントが変更され、枠線を「線なし」に修整する必要があります。 2)は見た目はWordそのものですが図に変換されているのと、枠線を「線なし」に修整する必要があります。 3)はご質問に近い感じになりますが、行が切れてしまいます。 「文字の割付とは」 http://www.relief.jp/itnote/archives/001151.php 他に「文字の割付」で検索して頂くと多数ヒットすると思います。

chupa123
質問者

お礼

アドバイスをありがとうございます。 なるほど、テキストボックスですか。 ほかにもWordオブジェクトにする方法などもあるのですね。 いろいろ試してみることにします。 たくさんの方法を教えていただきありがとうございました!

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

出来ないと思いますが、、、 下のセルに分割する事は出来ます。 該当セル(例 A1)を選択してから「編集」-「フィル」-「文字の割付」 これで A1 の幅に収まらない文字列はA2以降に分割されます。

chupa123
質問者

お礼

アドバイスをありがとうございます。 やはりできないのですね・・・。 イメージで次の行にも透かせるんじゃなきかと思ってしまいました(^^; やはり文字の割付が一番良さそうですね。 ありがとうございました!