Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9983 / 13644 ツリー ←次へ | 前へ→

【24374】セルにおける入力規則について yamazaki 05/4/20(水) 20:27 質問[未読]
【24381】Re:セルにおける入力規則について kobasan 05/4/20(水) 21:39 回答[未読]
【24426】Re:セルにおける入力規則について yamazaki 05/4/21(木) 22:38 お礼[未読]

【24374】セルにおける入力規則について
質問  yamazaki  - 05/4/20(水) 20:27 -

引用なし
パスワード
   以下の構文は、入力規則を割り当てるときに、記録した内容ですが、45文字まで入力し、間違った操作をしてしまうと入力した内容が消えてしまうとおもうのですが、1文字分超過したのであれば、1文字分のみを削除といった構文にはできないでしょうか?私がやるとエラーになってしまいます。(無理なのかな?;^^)
Worksheet_changeまたは、WorkSheet_SelectionChangeを使うのでしょうか?まったく構文の見当がつかないのでどうかお願いします。

With Selection.Validation
    .Delete
    .Add Type:=xlValidateTextLength, AlertStyle:=xlValidAlertStop, _
    Operator:=xlBetween, Formula1:="0", Formula2:="44"
  End With

【24381】Re:セルにおける入力規則について
回答  kobasan  - 05/4/20(水) 21:39 -

引用なし
パスワード
   ▼yamazaki さん今晩は。

>Worksheet_changeを使うのでしょうか?

Worksheet_changeでやってみました。こんなのでいいのかな?

Private Sub Worksheet_Change(ByVal Target As Range)
  maxstr = 45
  If Len(Target.Value) > maxstr Then
    Cells(Target.Row, Target.Column) = Left(Target.Text, maxstr)
  End If
End Sub

【24426】Re:セルにおける入力規則について
お礼  yamazaki  - 05/4/21(木) 22:38 -

引用なし
パスワード
   kaba さんありがとうございます。

まさしくそれを各セルに当てはめてみたらできました

9983 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free