Excel VBA質問箱 IV

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

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


7290 / 76732 ←次へ | 前へ→

【75030】Re:入力規則を自動的に設定したい
発言  kuro  - 13/11/16(土) 14:12 -

引用なし
パスワード
   ▼まき さん:
>こんにちは
>コードがうまく動かないのでご教示願います
>
>[やりたいこと]
>E列の指定された範囲に、○○○という文字列を含む文が入力されたら 同じ行のH列にデータの入力規則が設定されるようにしたい
>
>シートモジュールに以下のコードを書いています
>
>Private Sub Worksheet_Change(ByVal Target As Range)
>  Dim c As Object
>
>For Each c In Range("$E23:$E60")
>  
> If c.Value Like "*○○○*" Then
>      x = ActiveCell.Row
>      Cells(x, 9).Select
>     MsgBox x
>  With Selection.Validation
>    .Delete
>    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
>    xlBetween, Formula1:="=$X:$X"
>    .IgnoreBlank = True
>    .InCellDropdown = True
>    .InputTitle = ""
>    .ErrorTitle = ""
>    .InputMessage = ""
>    .ErrorMessage = ""
>    .IMEMode = xlIMEModeNoControl
>    .ShowInput = True
>    .ShowError = True
>  End With
> Else
> Exit Sub
> End If
>Next c
>End Sub
>
>するとまったく動きません。○○○という文字列を認識してないのでしょうか?
>ちなみにelse Exitsubを省略すると、○○○が含まれていなくてもH列に入力規則が設定されてしまいます
>どこがおかしいのでしょうか?

今回提示されたプログラムではシートのどこかのセルで変化があったときE23〜E60
に"○○○"が含まれていることを上からチェックし処理するように見受けられますが,
処理したい行に行く前にExitSubで終了となる可能性がかなりあると思いますので,
変化したセル(Target)がE23〜E60のとき処理を実行するようにしてはいかがでしょうか?
290 hits

【75012】入力規則を自動的に設定したい まき 13/11/14(木) 17:01 質問
【75017】Re:入力規則を自動的に設定したい まき 13/11/14(木) 23:15 発言
【75027】Re:入力規則を自動的に設定したい γ 13/11/15(金) 20:36 発言
【75033】Re:入力規則を自動的に設定したい γ 13/11/16(土) 20:08 発言
【75030】Re:入力規則を自動的に設定したい kuro 13/11/16(土) 14:12 発言
【75041】Re:入力規則を自動的に設定したい まき 13/11/18(月) 9:30 お礼

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