ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Excel(エクセル)活用コミュの「以下余白」を自動入力したい

  • mixiチェック
  • このエントリーをはてなブックマークに追加
いつもお世話になっています。

注文書の明細がM21〜M30まで10行あります。
10行全て使うことは無いため、例えば5行目まで明細が
入っていたとしたら、6行目に「以下余白」を自動入力したいです。

色々調べて、下記が一番近いことと意味も何となくわかったのですが、
超初心者のため、M21〜M30のみを対象とするためには
どうしたらいいのかがわかりません。
(色々試してみましたがダメでした。)

これにあと何を追記すればいいのか、
ご教示いただけると幸いです。
(意味も説明いただけると、更に幸いです。)
どうぞよろしくお願いいたします。

Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Count > 1) + (Target.Column <> Range("m:m").Column) Then Exit Sub
With Range("m65536").End(xlUp)
If .Value = "以下余白" Then Exit Sub
.Offset(1, 0).Value = "以下余白"
End With
End Sub

コメント(3)

出先で確認もしていませんが、
Exit Subをする条件に列だけでなく、行も指定するとか
TargetのCellが所定の範囲内かどうか調べて、それを条件にするとか
シンプルにこんなのはどうですか?
ピリオド(.)を入力すれば「以下余白」に変換します。

Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("M21:M30")) Is Nothing Then Exit Sub
  If Target.Count > 1 Then Exit Sub
  If Target.Value = "." Then Target.Value = "以下余白"
End Sub
マリオさん、ミスキタさん、早速のコメントを
ありがとうございました!!

私が自分で注文書を作成するのであれば、ミスキタさんの内容で
十分なのですが、各担当者が作成するので、ピリオドの入力は
期待できなかったりします(^_^;)

VBAはまるでわかりませんが、お二方のコメントをヒントに
やってみたらできました。。。
無駄なところとか、変なところがあるとは思うのですが、満足です。

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("M21:M29")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target.Value = "以下余白" Then Exit Sub
With Range("m65536").End(xlUp)
.Offset(1, 0).Value = "以下余白"
End With
End Sub

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Excel(エクセル)活用 更新情報

Excel(エクセル)活用のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。