Excel – セルのテキストが次の(空の)セルにオーバーフローしないようにする

microsoft-excel microsoft-excel-2010

Excelのセルに長すぎてそのセルの可視領域に表示されないテキストがあり、右側の次のセルが空の場合、Excelはその次のセルにテキストを表示させています(必要に応じてその次も、その次も、その次も)。これを変更したい;このテキストオーバーフローを回避したい

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

ExcelのDEFAULTの動作を変更して、各セルの値をそのセルの見える部分だけに表示するようにしたい。オーバーフローもワードラップもしない

これは可能なのでしょうか?(ちなみに私はExcel2010を使っています)

  93  e-mre  2012-11-19


ベストアンサー

これは誰にでもできることではないかもしれませんが、Google Sheetsにドキュメントをインポートした場合、この機能はデフォルトでサポートされています。上部のメニューバーでは、3種類のテキストの折り返しがサポートされています。オーバーフロー、ラップ、クリップです。クリップを探しています

要件にもよりますが、人によっては実行可能な選択肢になるかもしれません

6  yellavon  2017-12-13


はい、あなたはこの行動を変更することができますが、あなたはおそらく、この原因となる副作用を望んでいないでしょう

隣接するセルにデータが含まれているかどうかに関わらず、セルの内容をセルの境界に限定するポイントは、テキストの整列Fillです。はみ出したくないセルを選択して右クリック > セルの書式設定… > 整列タブ > 水平揃え >塗りつぶし

この方法の問題点は、セルに収まるような短い内容を複数回繰り返すことで、実際にセルを埋めてしまうことです。これが何を意味するかについては、以下のスクリーンショットを参照してください。(B7は「短いテキスト」で埋められていることに注意してください)

Screenshot showing the different text alignment behavior for default and fill

これに加えて、数字が左揃えになり、隣接するセルをFillにした場合も、そのセルにテキストがはみ出してしまいます(この点を指摘してくれた posfan12HongboZhu に感謝しています)

だから本当にBenediktの投稿にある回避策で立ち往生してしまうようです

おすすめの方法です。ベネディクトの最初の、とても賢い方法を使って、隣接するセルを目盛り文字 (') で埋めることができます。この方法では、何も隠す必要がなく、セルのオーバーフローを防ぐことができますし、セルをテキストとしてコピーしても(例えばメモ帳にコピーしても)空のテキストが得られ、スペースや目盛り、その他のフィラー文字は得られません

60  Marcus Mangelsdorf  2015-10-22


私のやり方はこんな感じです

  1. オプション1: 空のセルをすべて「N/A」で埋めてから、条件付き書式設定を使用してテキストを見えなくする
  2. またはオプション2: 空のセルをすべて0で埋め、Excelの設定でゼロ値を非表示にします

空のセルを全て埋める。(Macでテスト)

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

条件付き書式設定で “N/A “を隠す

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

Hide Zeros

  • エクセル→設定→表示
  • ゼロ値を表示する」のチェックを外す

_______________ それはCtrl+Enterであって、Ctrl+Shift+ではありません

28  Benedikt Köppel  2015-07-24


式=””と入力してみてください。(これは2つの二重引用符です)を、オーバーフローを見たくない隣接するセルの中に入れます。これは何も表示されず、数学に影響を与えない “null “と評価されます

15  microsecond  2017-04-17


'を使用して、隣接する空白セルへのExcelの右方向へのテキストの流出をブロックするという解決策を拡張すると、その値を挿入してデータ列を修正/破損させたくない場合があります

実際のデータ値に'を挿入する代わりに、この目的のために新しい専用の縦列を作成することができます

1.バリアカラム

enter image description here

2.保護したい列の左に「バリア」列を挿入します

enter image description here

3.3.バリアカラムのカラム幅を小さい値に設定して、バリアカラムを折りたたむ

列の幅を .1 のような値に設定するか、 あるいはバリア列を幅広にして、余白や列間の空白として機能させます

enter image description here

垂直バリア列の幅をゼロに設定すると、不要なセルオーバーフロー動作に戻ります

4. Voila!

4  Glenn Slayden  2018-11-28


セルには水平方向のテキストアライメント「塗りつぶし」を使用します。これは他の整列オプションと同じ場所にあり、問題を解決してくれるはずです

Fill Text Alignment

3  Thomas  2017-10-31


Excelで、列を必要な幅に調整し、その列でワードワープを有効にして(これにより、すべての行の高さが増加します)、最後にすべての行を選択して、行の高さを希望の高さに調整します。これで完成です。これで、隣接するセルにはみ出さないテキストがセル内に表示されるようになりました

(注:私はこれを見つけて、選択した回答の中にコメントとして投稿しましたが、回答としても投稿しているので、他の人が見つけやすいでしょう)

1  e-mre  2019-06-24


Google Sheetsが万人向けではないかもしれないというのと同じラインで、このマクロは万人向けではないかもしれないが、誰か向けなのかもしれない

選択された範囲を実行し、はみ出したセルを切り詰められたテキストに置き換えます

フラグは、かどうかを決定します

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

  • 切り捨てられたテキストは、ハードコード化されているか、ワークシートの数式 =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

最終的な注意点:個人的なプロジェクトで使ってみて信頼性が高いと感じましたが、慣れないマクロを試す前に保存とバックアップをしておいてください

0  ProfoundlyOblivious  2019-09-23


次のセルに'(アポストロフィ1個)と書けばいいだけの簡単な解決策。これだけではExcel上では見えませんが、前のセルからのオーバーフローを止めることができます

スーパーソリューションではありませんが、私の限られたケースではかなり効果がありました

0  Ilya Chernomordik  2020-03-11


タイトルとURLをコピーしました