VBAの勉強をしています。 ・入力用のBOXを表示して、 ・入力した値をA1セルに入れる という内容で作ってみたのが以下です。

Visual Basic | Excel122閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

0

ThanksImg質問者からのお礼コメント

ありがとうございました!

お礼日時:9/24 22:54

その他の回答(2件)

0

InputBox関数の引数は文字列型のデータと決められているのでエラーになるだけのこと、 Long型にするとルール違反ですよ、で「型が違う」になります。 エクセルは数値に変換できるものは何でも数値に変換して受け取る、という、こちらもエクセル独自のルールを持っています。例えば"1-1"という文字列を受け取ると勝手に1月1日に変換して44197という数値に変換してしまうのは経験していると思います。 なのでVBAのルールとExcelのルールを覚えてしまえばいいですね。 ユーザーに数値を入力してもらいたいなら Sub 入力() Dim 社員番号 As String 社員番号 = InputBox("社員番号を入力してください", "社員番号") If 社員番号 <> "" Then If IsNumeric(社員番号) Then Range("A1") = 社員番号 Else MsgBox "数値を入力してください" End If End If End Sub ぐらいでいいと思います。

そういう意味ではkin**さんのはちょっと違いますよ。 Long型で宣言するとユーザーが数字を入力してもエラーになります。キャンセルしてもエラーです。 お試しください。

0

数値を取り扱いたい場合は、「Application.InputBox」を使用します。 下記、URIを参照ください。 http://officetanaka.net/excel/vba/tips/tips37.htm