techbank.jp コミュニティ

     あれ?どうやるんだっけ?を解決する

↑の さんのBlog

VB勉強記録:10

皆様、ご無沙汰しております。2010年のご挨拶がとても遅くなり大変申し訳ございません。

本年もこの場をお借りしてVBの勉強に臨みますので、どうぞよろしくお願い申し上げます。

今回も旧暦プログラムを使用して記事を書かせて頂きます。

今回は数字入力にTextBoxを使用し、整数が入力されたかどうかのチェックを入れました。

コードです。

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim month As Integer

        Try
            'テキストBOX入力値チェック
            month = Integer.Parse(TextBox1.Text)

            If month >= 1 And month <= 12 Then
                Label1.Text = Me.GetKyureki(month)
            Else
                Label1.Text = month & "月は存在しません。"
            End If

        Catch ex As Exception
            'メッセージ
            Label1.Text = "整数を入力してください。"

        End Try

    End Sub
    Private Function GetKyureki(ByVal month As Integer) As String

        Dim kyureki As New ArrayList
        Dim hyoji As String = ""

        kyureki.AddRange(New String() {"睦月", "如月", "弥生", _
                                       "卯月", "皐月", "水無月", _
                                       "文月", "葉月", "長月", "神無月", "霜月", "師走"})

        hyoji = kyureki(month - 1)

        Return hyoji

    End Function
End Class

TextBoxに「3.5」と入力する以下のようなメッセージが出るようにしました。

 

【3.5月の場合】

 

1~12以外の数字を入力した場合は以前と同じメッセージがでます。

 

【13月の場合】

 

【0月の場合】

実は最初どうすれば「整数が入力されているかを判定」出来るかがわからず

調べた結果、Parseメソッドを知り初めて使用しました。

「どのクラスにどんなメソッドがあるか」をもっと意識しようと感じています。

コメント

 

けろ-みお 発言:

サンプルコードの部分に/preタグを入れ忘れているみたいで、サンプルコードの体裁が崩れて表示されています。

また、< や > をサンプルコード内にいれている場合は、

&lt; ( < の場合)、&gt; (>の場合)に置換してからBlogにUP

する必要がありますので、合わせてご確認ください。

3月 7, 2010 3:09 午後
 

mameko 発言:

けろ-みおさん

御指摘ありがとうございます。

記事のアップロード後すぐに体裁の確認をしないままで

いてしまいました。

大変失礼致しました。

/preタグや、&lt;、&gt;への置換を確認して修正した記事を

アップロード致しました。

申し訳ございませんでした。

3月 7, 2010 10:18 午後
 

nora 発言:

Integer.Parse

あーそっか!数字に変換できなければエラー例外が発生するから、それで切り分けられるのですね。

先月のPJで同様のコードを見かけたけど忘れてました(汗

自分が思い浮かんだのは正規表現でのチェックですね~♪

ASP.NETでの入力チェックも調べてみると面白いかもしれませんよ。

3月 8, 2010 12:05 午前
 

けろ-みお 発言:

Int32.TryParse もしくはVBだと、Integer.TryParse で確認するというのもありですね。

野良さんが言うように、正規表現でのチェックもあり

かなと思いますが、未入力の状態を担保するのであれば、VBの場合、Nullable(Of Integer) 型で実装するべきなんでしょうね。

ちなみに、Nullable(Of Integer)は、VS2005で対応されるので、↑のさんが使っているVS2003では非対応です。すいません・・・

3月 8, 2010 9:47 午前
 

mameko 発言:

noraさん

コメントありがとうございます。

>自分が思い浮かんだのは正規表現でのチェックですね~♪

>ASP.NETでの入力チェックも調べてみると面白いかもしれませんよ。

一人で調べているだけでは、知らないままの事が多いのだと実感します。。。ありがとうございます。

今後も宜しくお願い致します。

3月 9, 2010 10:55 午後
 

mameko 発言:

けろ-みおさん

コメントありがとうございます。

>Int32.TryParse もしくはVBだと、Integer.TryParse で確認するというのもありですね。

Integer.TryParse を早速コードで確認してみました。

Falseなら「整数を~」のメッセージを出すようにする事で、今回のコードと同じ動きになるようですが、まだ変な部分もありそうです。(またBlogにて完全にブラッシュアップしたいと思います。)

今後も宜しくお願い致します。

3月 9, 2010 11:10 午後

コメントを残す

(必須)  
(オプション)
(必須)  
techbank.jp