vbaでのプログラミングに関してお聞きしたいことがあります!
変数a に年度("H○○")
を格納しています。

そこで【変数aの値が"H29"以降の時】という条件をIf文で記述したいのですが全く上手く行きません。

私は【変数aの値が"H29"以降の時】を
If a >= "H29" Then…
のように記述していました。

どなたかご教授お願い致します。

A 回答 (2件)

以下の様にして変数aの文字を数値に変換して下さい。


Replace()は文字を置換する関数(ここでは"H"を空文字""に置換している、"H29"→"29")
CLngは文字を明示的に数値化する関数(型はLong、"29"→29)


Sub Sample()
  Dim a As String
  a = "H29"
  
  If CLng(Replace(a, "H", "")) >= 29 Then
    MsgBox "TRUE"
  Else
    MsgBox "FALSE"
  End If
End Sub
    • good
    • 0
この回答へのお礼

サンプルコードまでご丁寧にありがとうございます!

お礼日時:2017/05/10 20:03

変数にはデータ型というのがあります。


整数型、実数型、文字列型、日付型など。

比較演算子(>=)などを使うのであれば、数値型か、日付型になります。

最初に、
Dim year AS Integer
などと宣言して、

year = 29
など、数値だけを代入してみてください。

"H29"を格納してしまうと、何を比較して以上とか以下とか言うのか、機械には分からない訳です。

データ型は基本なので、しっかり学ばれておくことをお勧めします。
型の宣言をしなくて良いタイプの言語を学ばれていた方でしょうか??
    • good
    • 1
この回答へのお礼

ご丁寧ねありがとうございます!
改めてデータ型の基本を復習します!

お礼日時:2017/05/10 20:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング