こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル セル 文字数設定

エクセル2007を使用しています。1セルの中に設定した1行分の文字数を越えると自動的にAlt enter キーを押して改行することは可能でしょうか。1行20文字に設定していて,それをこしたら自動的に改行されるようにしたいのです。教えてください。

投稿日時 - 2011-01-23 10:38:23

QNo.6468421

すぐに回答ほしいです

質問者が選んだベストアンサー

No2の回答の補足です。

No2で添付した画像はフォントがプロポーショナルフォントのMSPゴシックを使用していますので、文字間隔が一定ではないため、文字種によってセル幅に入る文字数が異なっています。

ご希望の1行20文字に設定するなら、セルのフォントを例えばMSゴシックのような「P」の付かない等幅フォントにしてからフィルの操作をしてください。

ちなみに、いったんフィルで行に分割したデータの文字数を変更したいなら、添付画像の例でいうと、選択する列の範囲をドラッグして変更して、再度フィルの操作をすれば、文字列を簡単に割り付け直すことができます。

すなわちA列からC列までの範囲に文字を配置するならA3:C7セルを選択して、あるいはB列までの文字数を変更したいならB列の列幅を調整してA3:B7セルを選択して、「フィル」「文字の割り付け」をします。

最終的にプロポーショナルフォントを使用したいなら、この操作で文字数を割り付けた後でフォントを変更してください(最終的にプロポーショナルフォントにすると右端がデコボコして見苦しくなりますが)。

投稿日時 - 2011-01-23 12:37:18

お礼

MSゴシックとMSPゴシックの違いは,MSPゴシックの方が字間がつまるくらいにしか思っていなかったので,驚きました。ありがとうございました。

投稿日時 - 2011-01-23 17:16:08

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

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

入力している途中で質問の要望を行うことは難しい。
>キーボードが押されたことの感知
http://questionbox.jp.msn.com/qa2260669.html 参照
シートのイベントにはありません。
ユーザーフォームのコントロールにはキーイベントの設定が可能です
ーーー
入力がすべて済んで、ある1列のデータについて加工するのは、VBAコードも常識的なコードで出来る。
既出回答のようなものでなく
b列のデータの例で
Sub test01()
d = Range("B65536").End(xlUp).Row
For j = 1 To d
x = Cells(j, "B")
MsgBox Len(x)
s = ""
i = 1
Do While Len(s) + 10 <= Len(x)
s = s & Mid(x, i, 10) & Chr(10)
i = i + 10
Loop
s = s & Mid(x, i, Len(x) - 10 * (i - 1) / 10)
's = s & "*"
Cells(j, "B") = s
Next j
End Sub
のようなのもある。
列幅は適当に設定し、書式ーセルー配置でー折り返して全体を表示するの設定は必要。
ーー
シート上の書式(見た目)で対処は
書式ーセルー配置ー折り返して全体を表示する
書式ー列ー列幅ー10(漢字なら20)
半角と全角が混じると旨くいかないし、フォントのサイズを標準以外に設定する(行間で混合)とうまく行かない。
ーー
関数でも文字数(長)が揃っておれば
=MID(B1,1,10)&CHAR(10)&MID(B1,11,10)& CHAR(10)& MID(B1,21,10)
なども出来る。mid関数のスタート位置(第2引数)が実際には存在しない位置になってもエラーにはならないようだ(詳しくテストしてないが)。
もちろん関数だから、別セルにおいて、になる。

投稿日時 - 2011-01-23 13:43:40

お礼

ありがとうございます。厳密にやっていこうとすると関数がかかわってくるのですね。とても奥深いものですね。私は,これまでパソコンを買い換える度にプリインストールされているエクセルやワードも次々バージョンアップしたものを買っていましたが,初めてパソコンを買った時のワード,エクセル98もほとんど使えてないのが改めてよく分かります。

投稿日時 - 2011-01-23 17:18:52

ANo.2

以下のような操作で1行の文字数をセル内改行する設定にすることができます。

A1セルに長い文字列が入力されている場合、A1セルからB2セル(添付画像の例ではB列の右端で10文字目になっています)を選択し、ホームタブの「編集」「フィル」「両端揃え」を選択すると、添付画像のA3セル以下のように10文字でセルごとに区切られた文章を作成することができます。

ホームタブのクリップボードの右下のダイアログ起動ツールをクリックして、Officeクリップボードを表示し、このA列のデータ範囲を選択して「コピー」し、改行文字列を入力したいセル(例えばC列の列幅を広げておいてC8セル)を選択し、数式バーをクリックして、画面左のOfficeクリップボードの内容を貼り付けます。

投稿日時 - 2011-01-23 12:07:08

お礼

ありがとうございます。かんたんそうですね。チャレンジしてみます。

投稿日時 - 2011-01-23 17:14:21

ANo.1

Excelにそのような機能設定はありません。
やるとしたら、マクロ(VBA)ですね。
一例ですが設定するシートのコードを表示して下記マクロをコピー&ペーストしてください。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ST1,ST2 As String
ST2 = Target.Formula
ST1 = Replace(ST2,Chr(10),"")
If Len(ST1) > 20 And Left(ST1,1) <> "=" Then
ST2 = ""
For i = 1 To Len(ST1) Step 20
ST2 = ST2 & Mid(ST1,i,20) & Chr(10)
Next i
Target.Value = ST2
End If
End Sub

投稿日時 - 2011-01-23 11:10:22

お礼

さっそくありがとうございます。チャレンジしてみます。

投稿日時 - 2011-01-23 11:32:54

あなたにオススメの質問