- ベストアンサー
Excelのセル書式が勝手に「折り返し」になるのを防ぐには?
F2キーの編集モードで、セルに長い文字列をコピーすると、自動的に「折り返し」になってしまいます。 いつも、そのたびに「書式」で設定しなおしてますが、もともとの書式が勝手に変更されないような設定が可能でしたら教えてください。よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。お話の要件がやって見えてきました。 エクセルをデータベース的使う: セル自体に入る文字数は、32,767文字 ですから、使い方によっては、このすべての文字を読むこともできます。たとえば、簡単なマクロで、クリックしてテキストボックスに映しこむっていう方法もありますからね。 >あと、今気づいたのですが、コピー元のテキスト内に「改行」が含まれている場合に、強制折り返しになるような気がしてきました。 それはなりますね。お使いになるかは別として、マクロを考えてみました。私の常に使っている「個人用マクロ」とは、かなり違いますが、私の感覚としては、出来栄えは上々です。(Excel 2000以上) これは、一旦、Web上でコピーしたものをワークシート上に貼り付けて、広がってしまった文字群を、選択された範囲の一番上のひとつのセルにすべてまとめ、標準の書式に戻してしまうというものです。 これをツールボタンにつければ、かなり便利かなって思います。 'Personal.xls -個人用マクロに登録してお使いください '<標準モジュール> Sub JoinLines() Dim rng As Range Dim buf As Variant Dim myLine As String Dim c As Variant Set rng = Selection 'マウスで範囲選択 If Application.CountA(rng) = 0 Then _ MsgBox "セルには文字がありません。", 64: Exit Sub buf = rng.Value '配列に変換 If IsArray(buf) Then '配列チェック For Each c In buf myLine = myLine & c '配列をひとつにする Next c Else myLine = buf '配列でない場合 End If Replace myLine, vbCr, vbNull '復帰コード削除 'もしかしたらvbLFは、要らないかも Replace myLine, vbLf, vbNull '改行コード削除 With rng .Clear '書式を標準に戻す .Cells(1, 1).Value = myLine '出力 .EntireRow.AutoFit 'セル幅を標準に戻す .Cells(1, 1).Select End With End Sub
その他の回答 (5)
- Wendy02
- ベストアンサー率57% (3570/6232)
#2 の Wendy02 です。 >上2行の内容からすると、おそらく複数行にまたがってしまうかしら? 私の場合は、複数行に貼り付けています。別に気にはならないのですが。でも、貼り付けた後にまとめるマクロは可能ですが、ちょっとややこしいかもしれませんね。 なぜかというと、1セルに、1,024文字は入力できても、文字数が256~1024文字の間は、###の表示になってしまいますから。
補足
ありがとうございます。 書いていなかったのですが、エクセルをデータベース的に使っているため、1行内に収まらないと困ってしまうのです。(^^;) 備考的なセルなので、セルがアクティブになったときだけ読めればじゅうぶん、というニーズなのですが。 (あと、今気づいたのですが、コピー元のテキスト内に「改行」が含まれている場合に、強制折り返しになるような気がしてきました。) 重ね重ね、お答えをありがとうございました。
- e46_2005
- ベストアンサー率32% (15/46)
「折り返し」にしたくないということであれば、webからの貼付を例にさせていただきますと、 1.web上のテキストをコピーします。 2.エクセルの貼り付けたいセル上で右クリックしてショートカットメニューが表示されたら、「形式を選択して貼り付け」をクリックします。 3.貼り付ける形式にHTML、Unicodeテキスト、テキストのいづれかを選ぶダイアログが表示されますのでここでHTML以外を選んでください。 そうすれば、折り返しにならずに貼り付けることが出来ます。 上記操作はExcel2000にて確認済みです。 他のソフトからの貼付で上手くいくかどうかは確認できませんので同様の方法で一度お試しください。
補足
ご回答ありがとうございます。 たしかに、この方法だと「折り返し」にはならないのですが、 元テキストの改行ごとに、複数の行にまたがってコピーされてしまうようです。(F2キーを使うのは、それを避けたいためという理由もあったりしますので…) ありがとうございました。
- lasichi
- ベストアンサー率31% (122/389)
No1です。 webからですか。ではテキスト以外の何らかの情報が入っている可能性がありますね。 コピー先のセルで右クリックしてテキストでコピーみたいな選択肢はでますか? それで問題なくいけると思いますが。
補足
ご回答ありがとうございます。 No4の方にも書きましたとおり、1行内に収めたいので、何か方法がありましたら、引き続きよろしくお願いいたします。 たびたび、ありがとうございました。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 正直なところ、F2 で編集モードにして、貼り付けると、こういう現象があるということを知りませんでした。私は、F2で編集モードにせずに、そのまま、貼り付けます。 Web データ以外は、折り返しになりません。Webデータは、折り返しになってしまいますので、私は、個人用マクロに、以下のようなマクロを入れて、ツール・ボタンに登録してあります。 Sub WrapTxtOff() With Rng .WrapText = False .AddIndent = False .ShrinkToFit = False .MergeCells = False .Interior.ColorIndex = xlNone End With End Sub なぜか、結合セルになるときもあるので、MergeCellsもFalse になるようにしてあります。ご質問の趣旨とは違うかと思いますが、参考まで。
補足
ご回答ありがとうございます。 結合セルになることもあるのは知りませんでした。マクロの登録は、少しまとまった時間が取れてから試してみたいと思います(上2行の内容からすると、おそらく複数行にまたがってしまうかしら?) 詳しいご説明を、ありがとうございました。引き続きアドバイスなどありましたら、よろしくお願いいたします。
- lasichi
- ベストアンサー率31% (122/389)
コピー元のデータが折り返して表示しているセルのデータなのでは? またはコピーしようとしているセルが"折り返して表示する"になっていないですか? コピーする時に"右クリック"→"形式を選択して貼り付け"→"値" でコピーしたら付加情報はコピーされず値のみコピーされます。 また関係ないですが、セルの書式編集のショートカット(Ctrl + 1)はなかなか便利ですよ。
補足
お答え、ありがとうございます。 補足させていただきますと、 コピー元の文字列はwebのや他のソフト(Excelではないところ)から持ってきたもので、コピー先であるExcel側は「折り返し」ではないセルです。 まさしく「値」だけをコピーしたいがために、 わざわざF2キーを押して、セル内編集モードにしているのですが(そうしないと、フォントサイズや色までもコピー元から持ってきてしまいますので)、 どういうわけか「折り返し」だけは、勝手に変更されてしまうのです。
補足
詳しいご説明を、ありがとうございます。 なにかの設定をいじれば回避できるかも?と思って質問を立ててみましたが、そう甘くはないようですね。(^^;) 以前教えてくださったことも含め、いずれマクロにも挑戦してみたいと思います。 ありがとうございました!