• ベストアンサー

エクセル セル 文字数設定

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

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

No2の回答の補足です。 No2で添付した画像はフォントがプロポーショナルフォントのMSPゴシックを使用していますので、文字間隔が一定ではないため、文字種によってセル幅に入る文字数が異なっています。 ご希望の1行20文字に設定するなら、セルのフォントを例えばMSゴシックのような「P」の付かない等幅フォントにしてからフィルの操作をしてください。 ちなみに、いったんフィルで行に分割したデータの文字数を変更したいなら、添付画像の例でいうと、選択する列の範囲をドラッグして変更して、再度フィルの操作をすれば、文字列を簡単に割り付け直すことができます。 すなわちA列からC列までの範囲に文字を配置するならA3:C7セルを選択して、あるいはB列までの文字数を変更したいならB列の列幅を調整してA3:B7セルを選択して、「フィル」「文字の割り付け」をします。 最終的にプロポーショナルフォントを使用したいなら、この操作で文字数を割り付けた後でフォントを変更してください(最終的にプロポーショナルフォントにすると右端がデコボコして見苦しくなりますが)。

kmthg26
質問者

お礼

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

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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引数)が実際には存在しない位置になってもエラーにはならないようだ(詳しくテストしてないが)。 もちろん関数だから、別セルにおいて、になる。

kmthg26
質問者

お礼

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

すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

以下のような操作で1行の文字数をセル内改行する設定にすることができます。 A1セルに長い文字列が入力されている場合、A1セルからB2セル(添付画像の例ではB列の右端で10文字目になっています)を選択し、ホームタブの「編集」「フィル」「両端揃え」を選択すると、添付画像のA3セル以下のように10文字でセルごとに区切られた文章を作成することができます。 ホームタブのクリップボードの右下のダイアログ起動ツールをクリックして、Officeクリップボードを表示し、このA列のデータ範囲を選択して「コピー」し、改行文字列を入力したいセル(例えばC列の列幅を広げておいてC8セル)を選択し、数式バーをクリックして、画面左のOfficeクリップボードの内容を貼り付けます。

kmthg26
質問者

お礼

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

すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.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

kmthg26
質問者

お礼

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

すると、全ての回答が全文表示されます。

関連するQ&A

このQ&Aのポイント
  • 筆まめの製品登録ログインについて質問です。
  • 筆まめVer34を2台目のPCにインストールし、起動すると製品登録のウインドウが現れます。
  • ID(メールアドレス)とパスワードを入力しログインしようとしますがログインできません。
回答を見る

専門家に質問してみよう