• ベストアンサー

エクセル セルの入力文字数固定

mitarashiの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.4

Excelに多くを望みすぎる発想が面白かったので、試しに作ってみました。 10文字単位に分割して、余りの文字のセルに移動し、編集状態にします。 全角も半角も一文字扱いですので、実用的ではないと思います。 また、新規入力の場合に限ります。既存の文字まで考慮しようとすると、エディターを開発(大げさ)することになってしまいそうです。 Excel2000のコードですので、上位バージョンでの動作は?です。 シートモジュールに記述してください。 エラーが発生したらとにかく抜けるいい加減な作りです(^^;) Private Sub Worksheet_Change(ByVal Target As Range) Dim targetString As String Dim divResult As Long Dim remain As Long Dim i As Long Const limitLength As Long = 10 Application.EnableEvents = False On Error GoTo ErrorHandle: targetString = Target.Value If Len(targetString) > limitLength Then divResult = Len(targetString) \ limitLength remain = Len(targetString) Mod limitLength For i = 1 To divResult If i = 1 Then Target.Value = Left(targetString, limitLength) Else Target.Offset(i - 1, 0).Value = Mid(targetString, limitLength * (i - 1) + 1, limitLength) End If Next i If remain > 0 Then Target.Offset(divResult, 0).Value = Mid(targetString, limitLength * divResult + 1, limitLength) Target.Offset(divResult, 0).Activate Else Target.Offset(divResult, 0).Activate End If SendKeys "{F2}" End If ErrorHandle: Application.EnableEvents = True End Sub

hakase09
質問者

お礼

まったくもって素人の思いつきでお恥ずかしい限りです(^^;) 入力しながら改セルができると、文字数を意識しながら作業できそうなので便利そうです。 しかし、関数といえば「合計」しか使ったことがないものですから、 結果はもうしばらくお待ち下さい。必ず結果を報告させていただきます。 とりいそぎ、回答のお礼まで。 ありがとうございます。

関連するQ&A

  • EXCELのセル内の文字の折り返しがうまくいかない

    EXCEL2003でセル内で文字の折り返しを指定しているなか、 セルの書式設定で文字の折り返しを選んだのに文字が折り返して表示されません。 折り返しにはなっていますが、行の幅が自動で広がりません。 行の高さの指定も特に指定してないとこのことです(人に質問 されています)。 可能な行もあります。 なので何かが行に対して設定されているのだとは思うのですが 原因が思い浮かばないのです。 ただ、列幅をダブルクリックして自動調整を一度行っておけば、 そのあとはその行も折り返しがされ、行高さも自動調整します。 何かが行に設定されているようですが、 何が考えられるでしょうか? よろしくお願いします。

  • エクセル:結合したセルの高さ自動設定

    EXCEL2000で結合したセルの高さ自動設定がききません。 結合したセルは ・文字の配置 横位置:左詰 縦位置:上詰め ・文字の制御 折り返して全体を表示 セルを結合する になっています。 セルを5つ結合して、その結合したセルの横幅を文字列が 越えたら次の行にいって、かつその折り返し部分が見えるように したいんです。 結合していない単体のセルの場合は、折り返され、かつ 折り返し部分が見えるように高さが変わります。 結合したセルでの高さ自動設定はできないのでしょうか? 教えてください。よろしくお願いします。

  • エクセルでセルを結合した場合の文字間隔の変更

    セルを結合し、かつ文字を複数行で入力する場合、 縦の文字間隔を調整(大きく)することは出来ますか? セルの書式設定で、均等割りをすると、セルを結合した大きさによって、文字間隔が変わってしまいます。

  • エクセル 固定文字 (未入力でも表示可能ですか?)

    エクセルの固定文字について質問させて頂きます。 特定の列に固定の文字を表示させたいのですが、何かを入力しなくても書式設定で設定した文字を表示させる方法はありますでしょうか? 一番上のセルに文字を入れてドラッグしているのですが、行を挿入する度にドラッグし直さなくても良い方法がありましたら教えて下さい。 宜しくお願いします。

  • EXCELでセルに入れる文字数の制限

    EXCELで文章と表が混在している書式をつくっています。 その時なのですが、セルに入る文字数を常に一定にしたいのです。 (Wordだと一行何文字と指定できるとおもうのですが) セルに入れる文字を制限数までとし、それを超えたら入力できないように設定できる方法はありますか? マクロを張り込まないとできないのでしょうか? 私はマクロのプログラムが全く書けないのでそれができません。 どうしたらよいでしょうか? また、その方法があるとして、それは結合させたセルにも有効でしょうか? ちなみに、EXCELにワードを張り込むという方法ではない方法を探しています。 よろしくお願いいたします。

  • Excelで、行数に合わせて文字を拡縮できる?

    Excelで、オートシェイプかテキストボックス、 もしくは結合した大きなセルに、 他セルの参照を入れ込みたいと思っています。 ところが、その入れ込みたいデータが、 場合によって何行にもわたったり一行だけになったりというような性質の もので、行数が少ない場合は文字を大きくしたいのですが、 どうしたら良いのかわかりません。 しかも、改行関数CHAR(10)を使っており、書式の設定は「折り返して全体を表示」モードにせざるを得なく、「縮小して全体を表示」にできません。 たとえば、シェイプの大きさをあらかじめちょうど良く設定しておいて、 シェイプにあわせて文字の大きさを自動的に変える、 というような事はできるのでしょうか。 それか、セルの書式設定を「折り返し」「縮小」を同時に指定する、という ような事はできるのでしょうか。 条件付書式で、文字が何バイト以上ならこの大きさ、というような 設定をできるならそうしようか、とも考えたのですが、 そのものズバリの解決法ではありませんし・・・。 面倒な質問ですが、お知恵を貸してくださる方いらしたら お願いいたします。

  • セルの結合と折り返し表示の操作を簡単に

    エクセルで横に並ぶセルを結合して、さらに入力してある文字を折り返し全体を表示する作業をよく使っています。この場合結合するセルを選択して右クリックで、セルの書式設定を選び、1折り返し全体を表示する、2セルを結合するの1と2のそれぞれにチェックを入れOKをクリックしています。またこの場合行の高さを調整することが必要なので行の番号のところでドラッグして調整しています。高さの調整だけはソフトによっては文字の入力済みの場合自動的に調整してくれるものもありますが現在使用中のものはそれが出来ません。この操作を結合するセルを選択した後もっと簡単にショートカットなどを使い操作する方法がないか教えて下さい。

  • エクセルの表に文字を入力

    エクセル2000で表を作る場合、例えば左の行に項目(1)と入れて、その右に(1)の説明の文章を、セルをまたがって文字入力する場合、「セル内で折り返し」て、「セルを結合する」と設定すると、改行幅がせまくなって、左の行間と同じになりません。 行間をそろえて体裁よく表を作る方法を教えて下さい。

  • セルの折り返しについて

    WindowsXPでMicrosoft Office Excel2003を使用しています。セルの書式設定で「折り返し」を選択して入力すると、自動的に行が文字数にあわせて広くなる場合とならない場合があります。いつも自動的に広くなるようにするにはどうしたら良いか教えて下さい。

  • 【エクセル】 結合セルで行の高さを自動調整する方法

    通常、セルに多数の文字を書き込んでも列幅を変更 したくないときには、セルの書式設定で 「折り返して全体を表示する」 としておけば、列幅を広くすることなく、行の高さ が自動調整されます。 これを、結合セルでやろうとするとどうしても 自動調整してくれません。 結合セルでも、行の自動調整機能が働く方法を 教えてください。 よろしくお願いします。