Excel VBA質問箱 IV

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

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


11347 / 13646 ツリー ←次へ | 前へ→

【16602】セルの値を読み込む kaito 04/8/3(火) 20:57 質問[未読]
【16603】Re:セルの値を読み込む よろずや 04/8/3(火) 22:06 回答[未読]
【16604】Re:セルの値を読み込む IROC 04/8/3(火) 22:07 回答[未読]
【16605】Re:セルの値を読み込む kaito 04/8/3(火) 22:38 お礼[未読]
【16610】Re:セルの値を読み込む IROC 04/8/3(火) 23:46 回答[未読]

【16602】セルの値を読み込む
質問  kaito  - 04/8/3(火) 20:57 -

引用なし
パスワード
   セルの値を読み込むのですが、
例えば
セル【A1】に数値をいれるなら
longでいいですよね。

Dim 変数名 as long
変数名 = Range("A1").Value

セルの値に文字が入ったときは
エラーメッセージを出したいのですが、どうしたらいいですか?
(数値だけ拾い、後で使いたい)

【16603】Re:セルの値を読み込む
回答  よろずや  - 04/8/3(火) 22:06 -

引用なし
パスワード
   >セルの値に文字が入ったときは
>エラーメッセージを出したいのですが、どうしたらいいですか?
>(数値だけ拾い、後で使いたい)
IsNumeric関数を使って判定します。
これは、文字列を数値に変換可能かどうかを判定する関数です。
ですから、数値じゃなくても無理やり変換可能なものも数値と判定します。
例えば、全角の数字、「1E1」、「&H1」等々。

逆に同じ数字でも、数値として書かれているのか文字列として書かれているのかを
判定するのは
WorksheetFunction.IsNumber関数になります。

【16604】Re:セルの値を読み込む
回答  IROC  - 04/8/3(火) 22:07 -

引用なし
パスワード
   入力規則で十分に思えますが・・

変数は String として
changeイベントで IsNumeric関数で
入力された値を判定するのがよいと思います。

あとで、clng などで 必要に応じて型変換すればよいと思います。

【16605】Re:セルの値を読み込む
お礼  kaito  - 04/8/3(火) 22:38 -

引用なし
パスワード
   IROCさん
もう少し詳しく教えていただけますか?

【16610】Re:セルの値を読み込む
回答  IROC  - 04/8/3(火) 23:46 -

引用なし
パスワード
   A1を対象にしたサンプルです。

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address <> Range("A1").Address Then Exit Sub
  If Target.Value = "" Then Exit Sub
  
  If IsNumeric(Target.Value) = False Then
    MsgBox "数以外はダメです。"
    Target.Select
    Target.Value = ""
  End If
End Sub

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