Excel VBA質問箱 IV

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

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


5930 / 13645 ツリー ←次へ | 前へ→

【48135】ある範囲以外警報 musasi 07/4/5(木) 1:01 質問[未読]
【48137】Re:ある範囲以外警報 Blue 07/4/5(木) 1:26 質問[未読]
【48138】Re:ある範囲以外警報 musasi 07/4/5(木) 1:32 発言[未読]
【48139】Re:ある範囲以外警報 Blue 07/4/5(木) 1:45 回答[未読]
【48140】Re:ある範囲以外警報 musasi 07/4/5(木) 1:57 発言[未読]
【48141】Re:ある範囲以外警報 Blue 07/4/5(木) 2:11 発言[未読]
【48142】Re:ある範囲以外警報 Blue 07/4/5(木) 2:20 発言[未読]
【48151】Re:ある範囲以外警報 musasi 07/4/5(木) 12:17 お礼[未読]

【48135】ある範囲以外警報
質問  musasi  - 07/4/5(木) 1:01 -

引用なし
パスワード
   教えて下さい。
ある範囲以下でも以上でも警告を出したいのですが
よろしくお願いします。

ある範囲は50〜200 50以下200以上は警告
範囲はB11:AQ14,B17:AQ19です
Msgbox "範囲を超えています"

【48137】Re:ある範囲以外警報
質問  Blue  - 07/4/5(木) 1:26 -

引用なし
パスワード
   VBA使わなくても入力規則ではダメでしょうか?

参考
Excel(エクセル)基本講座:入力規則の使い方
ht tp://www.eurus.dti.ne.jp/~yoneyama/Excel/n-kis.htm

【48138】Re:ある範囲以外警報
発言  musasi  - 07/4/5(木) 1:32 -

引用なし
パスワード
   ▼Blue さん:
>VBA使わなくても入力規則ではダメでしょうか?
ありがとうございます。
ぜひvbaで試したいのですが
>参考
>Excel(エクセル)基本講座:入力規則の使い方
>ht tp://www.eurus.dti.ne.jp/~yoneyama/Excel/n-kis.htm
↑なら解るのですが・・・

【48139】Re:ある範囲以外警報
回答  Blue  - 07/4/5(木) 1:45 -

引用なし
パスワード
   ▼musasi さん:
>ぜひvbaで試したいのですが

>>Excel(エクセル)基本講座:入力規則の使い方
の中にVBAを使う例があったようですが、それを参考にすればできますよ。

Worksheet_Changeで、Targetが指定範囲の中にあれば
チェック対象にして、チェックする。
範囲判定はIntersectを使うと便利かな。

参考過去ログ
ある範囲で数値以外入力されたら×
ht tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=45903;id=excel

【48140】Re:ある範囲以外警報
発言  musasi  - 07/4/5(木) 1:57 -

引用なし
パスワード
   ▼Blue さん:
鈍い質問者で申し訳ないのですが
50〜200の範囲どうかけばよいですか
それと警告は?
よろしくお願いします。

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count = 1 And Not Target.Value = "" Then
   With Application
     If Not .Intersect(Target, .ActiveSheet.Range("A1:B500")) Is Nothing Then
      MsgBox IsNumeric(Target.Value), vbInformation, "数値ならTRUE、それ以外はFALSE"
     End If
   End With
  End If
End Sub

【48141】Re:ある範囲以外警報
発言  Blue  - 07/4/5(木) 2:11 -

引用なし
パスワード
   ▼musasi さん:
>50〜200の範囲どうかけばよいですか
そのままですけど?何がわからないのでしょうか?

' 50以下 または 200以上 は NG
If Target.Value < 50 Or Target.Value > 200
  MsgBox "範囲を超えています"
End If

>それと警告は?
意味不明ですけど。
MsgBoxに警告アイコンを出したいってこと?
それならMsgBoxをヘルプで調べればすぐわかることですけど。

参考
Excel(エクセル) VBAメモ:対話型処理1(MsgBox関数)
ht tp://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_msgbox.html

それと
>If Not .Intersect(Target, .ActiveSheet.Range("A1:B500")) Is Nothing Then
は A1:B500 の範囲を対象にしているのは理解できていますか?
つまり
>範囲はB11:AQ14,B17:AQ19です
とは違うということ。

【48142】Re:ある範囲以外警報
発言  Blue  - 07/4/5(木) 2:20 -

引用なし
パスワード
   訂正

>' 50以下 または 200以上 は NG
>If Target.Value < 50 Or Target.Value > 200
は「以上」「以下」なので

If Target.Value <= 50 Or Target.Value >= 200

です。

50〜200はOK の反対

50以下または200以上はNG
は違う。

つまり
>ある範囲は50〜200 50以下200以上は警告
は 50, 200 のとき矛盾しているように思える。

【48151】Re:ある範囲以外警報
お礼  musasi  - 07/4/5(木) 12:17 -

引用なし
パスワード
   ▼Blue さん:
お騒がせしました。
ありがとうございました。
>訂正
>
>>' 50以下 または 200以上 は NG
>>If Target.Value < 50 Or Target.Value > 200
>は「以上」「以下」なので
>
>If Target.Value <= 50 Or Target.Value >= 200
>
>です。
>
>50〜200はOK の反対
>と
>50以下または200以上はNG
>は違う。
>
>つまり
>>ある範囲は50〜200 50以下200以上は警告
>は 50, 200 のとき矛盾しているように思える。

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