Excel-セルテキストが次の(空の)セルにあふれないようにする


72

Excelセルのテキストが長すぎてそのセルの表示領域に表示できず、右側の次のセルが空の場合、Excelはその次のセル(および次のセル、および次に、必要に応じて)。これを変更したい。このテキストのオーバーフローを避けたい。

「ワードラップ」を有効にして行の高さを調整することで、これを回避できることを知っています。しかし、それは私が望むものではありません。

Excelのデフォルトの動作を変更して、各セルの値がそのセルの表示領域にのみ表示されるようにします。オーバーフローなし、ワードラップなし。

これは可能ですか?(ちなみに、Excel 2010を使用しています。)


5
それが不可能であることが判明した場合は、空のセルにスペース文字を使用できます
...-Aprillion

非常に興味深い-WordWrap、Font-AutoSize、または他のセルの文字を使用する以外の方法は知りません。
ジョーク

1
すべてのセルを選択し、Data / Text to Columns折り返し/オーバーフローせずにセルに収まる限り多くの文字の後にブレークを指定して、余分な文字を切り捨てることができます。余分な文字を保持する作成された追加の列をスキップすることを忘れないでください!
カラン

私はこれがあなたの質問に答えるでしょう推測: superuser.com/a/878605/497156
スライマン

「「ワードラップ」を有効にして行の高さを調整することで、これを回避できることを知っています。」ありがとう!それが私の選択したソリューションです。
お茶堂

回答:


4

これは万人向けのオプションではありませんが、ドキュメントをGoogleスプレッドシートにインポートすると、この機能はデフォルトでサポートされます。上部のメニューバーでは、3種類のテキストの折り返しがサポートされています。オーバーフロー、ラップ、およびクリップ。クリップを探しています。

要件に応じて、これは一部の人々にとって実行可能なオプションです。


5
あなたの答えは、実際にはExcelをドロップしてGoogleシートに移動することです。
ソーラーマイク

私が言ったように、誰にとっても選択肢ではありませんが、一部の人にとっては良い解決策かもしれません。
イェラボン

@SolarMike-ありがとう。私は混乱しましたが、あなたのコメントはこの答えを整理します。&yellavonは、人々が彼の答えをbるだろうと思っているので、実際に答えを説明する前に防御的だと思います。コメントは、実際に投稿された回答と比較して簡潔です。
バリーピッカー

実際、これは実際のソリューションに最も近い答えです。Excelでこれに似たことができることを発見しました。列を必要な幅に調整し、列でワードワープを有効にして(すべての行の高さを増加させます)、最後にすべての行を選択し、行の高さを目的の高さに調整します。出来上がり!これで、隣接するセルにオーバーフローしないテキストがセルにあります。(@ yellavon:回答を受け入れます。ユーザーがソリューションに簡単にアクセスできるように、このExcelの動作を含めるように更新することもできます)
e-mre

49

はい、この動作を変更できますが、おそらくこれが引き起こす副作用は望ましくないでしょう。

隣接するセルにデータが含まれているかどうかに関係なく、セルのコンテンツをセルの境界に制限するための鍵は、テキストの配置Fillです。オーバーフローさせたくないセルを選択し、右クリック> セルの書式設定... > 配置タブ > 水平配置 > 塗りつぶし

この方法の問題は、セルに複数回収まるのに十分短い場合に、コンテンツを繰り返すことで実際セルを埋めることです。これが何を意味するかについては、以下のスクリーンショットをご覧ください。(注B7れる満たされた「短いテキスト」で。)

デフォルトと塗りつぶしのさまざまなテキスト配置動作を示すスクリーンショット

Benediktの投稿の回避策に固執するようです

'Benediktの最初の非常に賢い方法を使用して、隣接するセルに目盛り文字()を入力することもできます。このように、何も隠す必要はなく、セルのオーバーフローを防ぎます。また、セルをテキストとしてコピーすると(メモ帳に言いましょう)、スペースや目盛りではなく空のテキストが表示されます。


2
だから私は、ベネディクトの方法に従って空を'文字で埋めるように提案した。今、私はあなたの答えに賛成するべきかどうか、彼の答えに賛成するべきなのか、それとも何なのかわかりません!:-p
ダンヘンダーソン

私はさらに混乱しています。'古い編集を含め、ベネディクトの回答には使用する提案がまったくありません!私は念のために、両方のupvotedしました...
user56reinstatemonica8

1
@ user568458:私のメモは、実際にはBenediktの答えのバリエーションでした。Benediktが示唆したように、セルを塗りつぶす' 代わりにセルを塗りつぶすことができN/Aます。すべての空白セルを任意の値で埋める Benediktの方法は非常に魅力的だと思いました。
マーカスマンゲスドルフ

1
「Fill」を指定すると、数値も左揃えになります。
posfan12

なんて...すごい馬鹿だ。(この答えではなくエクセル)
TJクラウダー

26

ここに私がそれをする方法があります。

  1. オプション1:すべての空のセルに「N / A」を入力し、条件付き書式設定を使用してテキストを非表示にします。
  2. またはオプション2:すべての空のセルに0を入力し、Excelの設定を使用してゼロ値を非表示にします。

すべての空のセルを埋める:(Macでテスト済み)

  • 編集→移動...→特殊...(Windowsの場合:ホーム→編集→検索と選択→特殊に移動...)
  • [空白]を選択して[OK]をクリックします。
  • すべての空白セルが選択されます。何もクリックしないでください。
  • 「N / A」または0を入力し、Ctrl+ Enter†を押します。これにより選択したすべてのセルに値が挿入されます。

「N / A」を非表示にする条件付き書式設定

  • フォーマット→条件付きフォーマット。
  • 新しいルールを作成します。
  • スタイル:クラシック、および数式を使用して、書式設定するセルを決定します。
  • 式: =A1="N/A"
  • 次の形式:カスタム形式:フォントの色は白、塗りつぶしなし。

ゼロを隠す

  • Excel→設定→表示。
  • 「ゼロ値を表示」のチェックを外します。

_______________
  いるのですCtrl+ Enterありません Ctrl+ Shift+Enter


13

オーバーフローを表示したくない隣接セルに「=」(2つの二重引用符)という式を入力してみてください。これは「null」と評価され、何も表示されず、数学には影響しません。


1
Benediktの投稿と合わせて、何も隠す必要がないので、これが最も簡単な解決策の1つであると思います。
マット

これは私に最適です。
ピーター

空でない範囲内のセルの数COUNTAカウントする統計関数に影響する場合。数式の結果として長さゼロの文字列を表示するセルは空ではなく、カウントされます。
深く忘却

4

セルに水平テキストの配置「塗りつぶし」を使用します。問題を解決する他の配置オプションと同じ場所で見つけることができます

テキストの配置を塗りつぶす


4
これは、マーカス・マンゲスドルフの答えでカバーされていませんか?
-Stevoisiak

9
また、マーカスがこの方法の重大な問題を説明していることに注意してください-セルの内容が十分に短い場合、それらは複製されます。したがって、「A」は「AAAAAAAA」になります。
ブラックウッド

よかった、ありがとう。セルを右クリックして再フォーマットする必要があります。「セルのフォーマット」を選択し、残りはガイダンスとして行います。動いた。
Catbuilts

4

Excelの隣接する空白セルへのテキストの右への流出'をブロックするために使用するソリューションを拡張し、その値をそこに挿入することによってデータ列を変更/破損したくない場合があります。

'実際のデータ値に挿入する代わりに、この目的のために新しい専用の垂直列を作成し、完全に'下の文字で完全に埋めることができます。

1.バリアコラム

ここに画像の説明を入力してください

2.保護する列の左側に「バリア」列を挿入します。

ここに画像の説明を入力してください

3.列幅を小さな値に設定して、バリア列を折りたたみます

列幅をなど​​の値に設定する.1か、バリア列を広くしてマージンまたは列間空白として機能させます。

ここに画像の説明を入力してください

ゼロより大きい幅を設定する必要があることに注意してください。垂直バリア列の幅をゼロに設定すると、不要なセルオーバーフロー動作に戻ります。

4.出来上がり!


1

Excelで、列を必要な幅に調整し、その列でワードワープを有効にして(すべての行の高さが増加します)、最後にすべての行を選択し、行の高さを目的の高さに調整します。出来上がり!これで、隣接するセルにオーバーフローしないテキストがセル内にあります。

(注:これを見つけて、選択した回答にコメントとして投稿しましたが、回答として投稿するので、他の人が見つけやすくなります。)


1
質問の2番目の段落:「「ワードラップ」を有効にして行の高さを調整することで、これを回避できることがわかっています。しかし、それは私が望んでいることではありません。」
fixer1234

0

Googleスプレッドシートは万人向けではないかもしれないと同じ考え方で、このマクロは万人向けではないかもしれませんが、誰か向けかもしれません。

選択された範囲を実行し、オーバーフローしたセルを切り捨てられたテキストに置き換えます。

フラグは以下を決定します:

  • 問題のテキストは、新しいワークシート内の同じ相対アドレスにコピーされるか、破棄されます。

  • 切り捨てられたテキストはハードコードされているか、ワークシートの数式を介してリンクされています =LEFT()

  • 切り捨てられたテキストは、新しいシートの完全な文字列にハイパーリンクされます。

デフォルトでは、データを保持し、両方のリンクを使用します。

Option Explicit

Sub LinkTruncatedCells()
    Dim rng As Range: Set rng = Selection
    Dim preserveValues As Boolean: preserveValues = True
    Dim linkAsFormula As Boolean: linkAsFormula = True
    Dim linkAsHyperlink As Boolean: linkAsHyperlink = True
    Dim w As Single
    Dim c As Range
    Dim r As Range
    Dim t As Long
    Dim l As Long
    Dim s As String
    Dim ws As Worksheet
    Dim ns As Worksheet
    Application.ScreenUpdating = False
    Set ws = rng.Parent
    For Each c In rng.Columns
        w = c.ColumnWidth
        t = 0
        l = 0
        For Each r In c.Rows
            If Len(r) > l Then
                s = r
                If CBool(l) Then r = Left(s, l)
                Do
                    r.Columns.AutoFit
                    If r.ColumnWidth > w And Len(s) > t Then
                        t = t + 1
                        r = Left(s, Len(s) - t)
                        l = Len(r)
                    End If
                Loop Until t = Len(s) Or r.ColumnWidth <= w
                r.ColumnWidth = w
                If r <> s And preserveValues Then
                    If ns Is Nothing Then
                        Set ns = ws.Parent.Worksheets.Add(after:=ws)
                    End If
                    ns.Range(r.Address) = s
                    If linkAsFormula Then r.Formula = "=LEFT(" & ns.Name & "!" & r.Address & "," & l & ")"
                    If linkAsHyperlink Then ws.Hyperlinks.Add Anchor:=r, Address:="", SubAddress:= _
                            ns.Range(r.Address).Address(external:=True)
                End If
            End If
        Next r
    Next c
    ws.Activate
    Application.ScreenUpdating = True
End Sub

最後の注意:個人的なプロジェクトに使用しましたが、信頼性が高いことがわかりましたが、不慣れなマクロを試す前に作業保存してバックアップしてください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.