Excel VBA質問箱 IV

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

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


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

【45903】ある範囲で数値以外入力されたら× こういち 07/1/17(水) 18:42 質問[未読]
【45910】Re:ある範囲で数値以外入力されたら× りん 07/1/17(水) 19:05 回答[未読]
【45912】Re:ある範囲で数値以外入力されたら× こういち 07/1/17(水) 19:17 発言[未読]
【45915】Re:ある範囲で数値以外入力されたら× りん 07/1/17(水) 19:36 回答[未読]
【45926】Re:ある範囲で数値以外入力されたら× こういち 07/1/18(木) 2:43 発言[未読]
【45927】Re:ある範囲で数値以外入力されたら× りん 07/1/18(木) 7:55 回答[未読]
【45935】Re:ある範囲で数値以外入力されたら× こういち 07/1/18(木) 11:49 お礼[未読]

【45903】ある範囲で数値以外入力されたら×
質問  こういち  - 07/1/17(水) 18:42 -

引用なし
パスワード
   教えてください
ある範囲で数値以外入力されたら
MsgBox "数値ではありません"
と表示したいのですが
よろしくお願いします。

【45910】Re:ある範囲で数値以外入力されたら×
回答  りん E-MAIL  - 07/1/17(水) 19:05 -

引用なし
パスワード
   こういち さん、こんばんわ。

>ある範囲で数値以外入力されたら
>MsgBox "数値ではありません"
>と表示したいのですが
>よろしくお願いします。

Changeイベントで見張るなら。

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

こんな感じです。
ある範囲内かどうかは、(Application.)Intersectメソッドで範囲内かどうかを判断すればいいです。

【45912】Re:ある範囲で数値以外入力されたら×
発言  こういち  - 07/1/17(水) 19:17 -

引用なし
パスワード
   ▼りん さん:
ありがとうございます。
仮にA1:B500の場合はどう書き込めば宜しいのでしょう。
VBAは余り解りませんのでよろしくお願いします。

>Changeイベントで見張るなら。
>
>Private Sub Worksheet_Change(ByVal Target As Range)
>  If Target.Count = 1 And Not Target.Value = "" Then
>   MsgBox IsNumeric(Target.Value), vbInformation, "数値ならTRUE、それ以外はFALSE"
>  End If
>End Sub
>
>こんな感じです。
>ある範囲内かどうかは、(Application.)Intersectメソッドで範囲内かどうかを判断すればいいです。

【45915】Re:ある範囲で数値以外入力されたら×
回答  りん E-MAIL  - 07/1/17(水) 19:36 -

引用なし
パスワード
   こういち さん、こんばんわ。

>仮にA1:B500の場合はどう書き込めば宜しいのでしょう。
>VBAは余り解りませんのでよろしくお願いします。
ヘルプはインストールしてありますか?

ヘルプより引用
Intersectメソッド
複数のセル範囲の共有セル範囲を表すRangeオブジェクトを返します。
引用終了

なので範囲を二つ指定して共有セル範囲(かぶってる部分)があるかどうかを判定します。

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

こんな感じです。

【45926】Re:ある範囲で数値以外入力されたら×
発言  こういち  - 07/1/18(木) 2:43 -

引用なし
パスワード
   ▼りん さん:
ありがとうございます。goodです。
もうひとつ
数字であればMsgBoxの表示は出さないようにするには?

>>仮にA1:B500の場合はどう書き込めば宜しいのでしょう。
>>VBAは余り解りませんのでよろしくお願いします。
>ヘルプはインストールしてありますか?
>
>ヘルプより引用
>Intersectメソッド
>複数のセル範囲の共有セル範囲を表すRangeオブジェクトを返します。
>引用終了
>
>なので範囲を二つ指定して共有セル範囲(かぶってる部分)があるかどうかを判定します。
>
>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
>
>こんな感じです。

【45927】Re:ある範囲で数値以外入力されたら×
回答  りん E-MAIL  - 07/1/18(木) 7:55 -

引用なし
パスワード
   こういち さん、おはようございます

>数字であればMsgBoxの表示は出さないようにするには?

>>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
      IF IsNumeric(Target.Value) Then
       'ここに数値だったときの処理を書く

     ELSE
       'ここに数値以外だったときの処理を書く

     End if
>>     End If
>>   End With
>>  End If
>>End Sub


こんな感じです。

【45935】Re:ある範囲で数値以外入力されたら×
お礼  こういち  - 07/1/18(木) 11:49 -

引用なし
パスワード
   ▼りん さん:
ありがとうございました。
希望通りのものになりました。
お願いばかりですが・・・
VBA不慣れな人間にとってはりんさん強い味方ですね
いつも掲示板拝見してます
これからもよろしくお願いします。
失礼します。
>
>>数字であればMsgBoxの表示は出さないようにするには?
>
>>>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
>      IF IsNumeric(Target.Value) Then
>       'ここに数値だったときの処理を書く
>
>     ELSE
>       'ここに数値以外だったときの処理を書く
>
>     End if
>>>     End If
>>>   End With
>>>  End If
>>>End Sub
>
>
>こんな感じです。

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