| 
    
     |  | ▼八家九僧陀 さん: 
 >現在 TextBox1に入力してシートに転記すると、文字列として入力されてしまいます。
 >それを数値データとして、あるいは日付データとして利用したいのですが・・・
 >
 >数値型の場合
 >Dim myKei as integer
 >myKei = TextBox1.Value
 >
 >日付型の場合
 >Dim myKei as date
 >myKei = TextBox1.Value
 >
 >と変数宣言すれば解決するのでしょうか。
 >
 
 質問はご自分で試してみれば分かることですよね?
 
 Range("A1").Value = TextBox1.Text
 Range("A2").Value = TextBox2.Text
 
 TextBoxのテキストは文字列です。
 ただし、現在のVBA(というかExcelは)はセルに代入するとき、
 テキストを解釈してくれ、
 数値であればセルに貼り付いた途端に数値型(Double型)で代入してくれます。
 また、日付けと解釈できれば、日付型(Date型)でセルに格納してくれます。
 Excelのこの解釈がときおり「要らんお世話」になる時があります。
 「1-2」などが日付けと解釈されることがある。
 
 暗黙の型変換を許さない他言語では、自前で型キャストを行う
 必要があります。これをVBAで書くと、以下のような書き方です。
 
 If IsNumeric(TextBox1.Text) Then
 Range("B1").Value = Val(TextBox1.Text)
 End If
 If IsDate(TextBox2.Text) Then
 Range("B2").Value = CDate(TextBox2.Text)
 End If
 
 |  |