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

このQ&Aに関連する最新のQ&A

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/10/23 12:21

多分#1でご指摘のパターンだと私も思うが


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

この回答への補足

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

補足日時:2007/10/08 14:28
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/10/23 12:21

セルの列幅より、表示する文字の長さが長い場合の仕様なのでどうにもなりません。


Alt+ENTERを使わない場合は、セルの列幅を広げるか、
縮小して全体を表示させるしかありません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/10/23 12:20

このQ&Aに関連する人気のQ&A

このQ&Aと関連する良く見られている質問

QExcelについて質問させてください こんにちは! セル内でAlt+Enterを押しても改行できな

Excelについて質問させてください

こんにちは!
セル内でAlt+Enterを押しても改行できなくなる現象に大変困っています。
解決策についてどなたかご教示いただけませんか?

編集ボックスを見ると、きちんと改行されているのですが、表示セルを見ると改行されていないのです。

他のセルはきちんと改行できるのに、特定のセルだけAlt+Enterを押しても改行できません。セルの高さが足りないのかと思い、広げてみましたが効果はありませんでした。

お手数ですが、ご回答お待ちしています。

Aベストアンサー

「セルの表示形式」の「配置」で、
「折り返して全体を表示」
が無効になっていると思う。

Qセル内右寄せ文字列の右側に半角スペースが入れられない

1セルに

A9,850
B2,866
C7,251

とセル内改行が入った3行があり、

右寄せしたうえで、右後ろに半角スペースを入れたいのですが、

A9,850_
B2,866_
C7,251_

(_は半角スペース)としても右詰めされてしまいますし、

'A9,850
B2,866
C7,251

とダッシュを入れても、書式設定を文字列にしても、ダメです。
うまい方法はありませんか。Excel2003と2013を持っています。

Aベストアンサー

過去に1度、同じような質問はあったと思うのですが、、、忘却
解決できなかったということにして、ちょいと挑戦。
[Ctrl]+[J]で置換してみたけどダメだった

あとはこの程度かなぁ
A9,850_
B2,866_
C7,251_
と入力して、 _をセル内で白い文字にする

Q「もしもセルA1にY(半角大文字)またはy(半角小文字)が含まれるなら」のマクロ表現は?

よろしくお願いします。いつもgooの皆さんには大変お世話になっています
エクセルは2013です

「もしもセルA1にY(半角大文字)またはy(半角小文字)が含まれるなら」はマクロでどう書いたら
良いでしょうか?

Aベストアンサー

例えば

UCase(Range("A1").Value) Like "*Y*"

Q離れたセル範囲に文字列で半角のS(大文字または小文字)が含まれるセルの合計を求める式は

よろしくお願いします
いつもgooの皆さんには大変お世話になっています
次のことを教えてください

範囲1はB2~B50です
範囲2はF2~F50です

それぞれの範囲に書かれた内容の中に、半角でSまたはsが含まれるセルの数の合計を
求める式はどう書いたらいいですか

例えば
"東京S" はSを含みます
"東s京" もsを含みます
"S" もSしか書かれていませんがSを含みます

どなたか教えてください

Aベストアンサー

COUNTIF関数は、大文字と小文字を区別しないので

=COUNTIF(B2:B50,"*s*")
=COUNTIF(F2:F50,"*s*")

でカウントできます。

QExcel2003、セルを35文字で別セルに改行したい

Excel2003、一つのセルを35文字で別セルに改行して5行、約175文字の文章にしたいのですがよい方法はありませんか、(自動的に改行出来るようにしたいのですが)教えて下さい。
また、Wordで作成した文章を35文字をExcelの一つのセルこどに自動的に移すことは無理でしようか。

Aベストアンサー

何度も失礼します。

最後の補足の
>Wordで作成してA1~A16のセルにコピー、ペーストして
と2番目の補足の
>A列のA1に番号が入ります。その下(A2)に175文字の文章がはいります。
>A列にA1番号・A2文章・A3空欄・A4空欄・A5空欄・A6空欄・A7からはA1~A6までの繰り返しでA48まで

が矛盾するように思えるのですが・・・
今までのコードはアップした画像のように
A2・A8・A14・A20・・・と6行毎に「175文字」の文字列セルがあり
それをA2~A6まで・A8~A12まで、A14~A18・・・
とそのセルを含めて下へ5行のセルに35文字に分割するコードです。
すなわち前回の画像の「175文字セル」のセルだけに175文字の文字が入っているという前提です。
後述のコード内の
>For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row Step 6
の部分が「A列2行目~6行おき」に!というコトになりますので、
A2セルの文字をA2~A6セルに分割、A8セルの文字をA8~A12セルに分割・・・
と連続させています。
もしA3~A6、A9~A11・・・セルにデータが入っている場合は消えてしまいます。

尚、今までのコードでは「行末禁則処理」が多い場合、最後のセルにすべての文字が表示されない可能性がありますので、
今までのコードは消去して↓のコードに変更してみてください。
(今回もC1・C2セルには禁則文字を入れておきます)

Sub Sample4()
Dim i As Long, k As Long, str As String
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row Step 6
str = Cells(i, "A")
For k = i To i + 4
If k <= i + 3 Then
With Cells(k, "A")
.Value = Left(str, 35)
str = Mid(str, 36, Len(str))
'▼ 行末禁則処理
If InStr(Range("C2"), Right(.Value, 1)) > 0 Then
str = Right(.Value, 1) & str
End If
'▼ 行頭禁則処理
If InStr(Range("C1"), Left(str, 1)) > 0 Then
.Value = .Value & Left(str, 1)
str = Mid(str, 2, Len(str))
.Offset(1) = str
End If
End With
Else
Cells(k, "A") = str
End If
Next k
Next i
End Sub

※ あくまで前回投稿した画像の配置でのコードです。
マクロの場合は1行でも異なれば全く意図しない動きになってしまいます。m(_ _)m

何度も失礼します。

最後の補足の
>Wordで作成してA1~A16のセルにコピー、ペーストして
と2番目の補足の
>A列のA1に番号が入ります。その下(A2)に175文字の文章がはいります。
>A列にA1番号・A2文章・A3空欄・A4空欄・A5空欄・A6空欄・A7からはA1~A6までの繰り返しでA48まで

が矛盾するように思えるのですが・・・
今までのコードはアップした画像のように
A2・A8・A14・A20・・・と6行毎に「175文字」の文字列セルがあり
それをA2~A6まで・A8~A12まで、A14~A18・・・
とそのセルを含...続きを読む

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

このQ&Aを見た人はこんなQ&Aも見ています

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


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報