• ベストアンサー

EXCEL2003 VBA

EXCELで文字を入力する際にセルに入力できる文字数を決めておき、それ以上の文字数の場合は下のセルに移動するVBAは可能でしょうか。可能でしたら教えていただけますでしょうか。よろしくお願いいたします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

シート名タブを右クリックしてコードの表示を選び 現れたシートに下記をコピー貼り付けとくと Private Sub Worksheet_Change(ByVal Target As Range)  Dim h As Range  On Error Resume Next  For Each h In Application.Intersect(Target, Range("A1:A10"))   If Len(h) > 10 Then   h.Offset(1) = Mid(h, 11, Len(h))   h = Left(h, 10)   End If  Next End Sub たとえばA1:A10のセル範囲で,入力した言葉を10文字ずつ下に落として切りそろえます。

noname#197073
質問者

お礼

丁寧な回答ありがとうございました。コードまで記載していただき感謝しております。早速、実行してみます。お手数をおかけしました。ありがとうございました。今後もよろしくお願いいたします。

noname#197073
質問者

補足

早速実行してみました。うまくできました。ありがとうございました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

エクセルVBAの取り扱うレベルを超えた仕組み、APIというウインドウズの基礎的な仕組みを使わないと文字入力は、そに都度に、とらえられません。ですからVBAレベルでは不可能。(ゲームなどで必要になるこういう仕組みはない。) Enterキーを押して(など)セルの値になってからならVBAでチェックできる。 ーー 既にご指摘のように「入力規則」でもチェックできる、(文字列(長さ指定)ー次の値より小さいー最大値など)。 これも入力を確定(Enterなど)してからチェックされる ーー もっと色々勉強するまでは、あきらめ、上記で我慢すること。

noname#197073
質問者

お礼

回答とご指摘ありがとうございました。いろいろ勉強します。ご指摘のように勉強し直します。ありがとうございました。

noname#137073
noname#137073
回答No.2

入力規則ではいけないのでしょうか。 http://www2.odn.ne.jp/excel/waza/validation.html#SEC7

noname#197073
質問者

お礼

回答ありがとうございました。EXCELにはいろいろな技があることを知りました。勉強し直します。ありがとうございました。

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

セルの編集中(文字入力中)はVBAは動作しませんので 不可能です。

noname#197073
質問者

お礼

早速の回答ありがとうございました。VBAについて勉強します。お手数をおかけしました。