質問

EXCEL2003で半角"-"または、半角のスペースでセル内で勝手に自動改行してしまいます。セルの設定は、Wrap Textがチェックされています。"-"や半角スペースで勝手に改行させたくないのですが、どのようにしたらよいでしょうか。ALT+ENTERで手動改行以外の方法をお願いします。

通報する

回答 (3件)

こんばんは。

>セルの設定は、Wrap Textがチェックされています。
って、英語版なのでしょうか?

日本語表示なら、「折し返して全体を表示する」ですよね。
ハイフネーションは仕様だから仕方がないと思いますね。

だから、「折り返して全体を表示する」をなしにして、入力するしかないと思います。
その後で加工すればよいと思います。もちろん、以下のマクロは、一旦、変更されたものでも、やり直します。

>ALT+ENTERで手動改行以外の方法

2バイト文字は入らないことになっているようですが、以下は、2バイト文字も入る前提で作られています。1バイト文字でも、ハイフネーションや単語に関係なく、LFコードが入ります。

ただし、フォントサイズは、10~12ptまでにしてください。それ以外は、定数が変わります。また、他の言語版の場合の仕様は変わる可能性がありますから、必ずしもうまくいくとは限りません。

----------------------------------------------------------------------

Sub AlignmentCells()
  Dim c As Range
  Dim mgWdth As Double
  Dim wCnt As Integer
  Dim cWdth As Integer
  Dim buf As String
  Dim bufc As String
  Dim i As Integer
  If StrComp(TypeName(Selection), "Range", 1) <> 0 Then Exit Sub
  
  For Each c In Selection
    If InStr(c.Value, vbLf) > 0 Then
      buf = c.Value
      Do
      buf = Replace(buf, vbLf, "")
      Loop Until InStr(buf, vbLf) = 0
      c.Value = buf
      c.WrapText = False
    End If
    If c.Value <> "" And InStr(c.Value, vbLf) = 0 Then
      mgWdth = c.Width
      cWdth = Int(((mgWdth - 3.75) / 6) * 100 + 0.5) / 100
      buf = StrConv(c.Value, vbFromUnicode)
      wCnt = LenB(buf)
      i = 1
      If wCnt > cWdth Then
        Do
          bufc = bufc & vbLf & StrConv(MidB(buf, i, cWdth - 1), vbUnicode)
          i = i + cWdth - 1
        Loop While wCnt >= i
        c.Value = Mid(bufc, 2)
      End If
    End If
    buf = ""
    bufc = ""
  Next c
End Sub

この回答へのお礼

回答ありがとうございました。

多分#1でご指摘のパターンだと私も思うが
そうすると
書式ー配置ー「折り返して全体を表示する」がチェックありの場合だが
(1)-に限らず文字数字記号を入れると、セル内で改行して表示される野では。
(2)やってみると、スペースでは(1)のようにならない。
(EX2002)
(3)ALT+ENTERで手動改行以外の方法をお願いします。
ALT+ENTERは、セル内で改行したいとき使うものではないですか。
この質問は改行させたくないケースの方法の質問でしょう。
ーー
質問の文章表現と違うが、質問の記述は正しいですか。

この回答へのお礼

回答ありがとうございました。
仕様だとするとすごく不便ですね。

この回答への補足

記号では、半角"+"、"/"、"="などやってみましたが、改行されません。また全角スペースは、改行されません。
やりたいことは、セル幅いっぱいになった時のみ折り返して(改行して)ほしいわけで、文章中の半角"-"でセル幅に行く前に折り返して(改行して)ほしくないのです。

セルの列幅より、表示する文字の長さが長い場合の仕様なのでどうにもなりません。
Alt+ENTERを使わない場合は、セルの列幅を広げるか、
縮小して全体を表示させるしかありません。

この回答へのお礼

回答ありがとうございました。

このQ&Aは役に立ちましたか?3 件

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

新しく質問する

このQ&Aを見た人が検索しているワード


新しく質問する

このカテゴリの人気Q&Aランキング

毎日見よう!教えて!gooトゥディ