Q1には、H16.3.31と日付が入っていて、F2には、就職年月日が入っております。 気持ち、CalculateFullRebuildのあとで、F8を押すのを待つと、正しく反映されるようです。 この記事へのトラックバック一覧です: Userformテキストボックスで計算する場合のポイント: Excel入門と使い方講座「はじめに」 [Excel 2013/2010/2007対応], 【ExcelUserform】コンボボックス1で選択し、その選択した値の候補をコンボボックス2に表示する例, [ExcelVBA]エクセルで英単語帳~英和・和英の切替えが出来るようにしてみる。, [EXCEL VBA]エクセルで指定用紙に印字する、又はエクセルで(複写)紙の手書き欄を印刷する。<サンプル編>, [EXCEL VBA]メニューシートを作ると便利~マクロブックの効率化・透明性のために, パソコン(Windows10)で動画を快適に、止まったり・コマ飛びしたり・急にローディングの輪っかが回りだしたり、等々しないように観たい. ・計算表での計算時間は、1秒未満です。 問題は、2004/2/29生まれの方の閏年でない場合の考え方ではと思います。, 回答有難うございます。 例)年齢基準値セルA1、終了期間B1でC1で年齢計算 window.dataLayer = window.dataLayer || []; End Sub Sub SURYO() | [ExcelVBA]図形を回転させる », テキストボックスに数字を入れて数値として認識させ計算する場合のポイント基本UsreformのTEXTBOXのvalueは、文字型になります。なので、計算するためには、数値型に変更する必要があります。, Textbox4、Textbox5があり、それぞれに値を入力すると、Textbox6に合計値を表示するコードです。, 【Textboxを計算する】Private Sub TextBox4_AfterUpdate()  TextBox6 = Val(TextBox4.Value) + Val(TextBox5.Value)End Sub, Private Sub TextBox5_AfterUpdate()  TextBox6 = Val(TextBox4.Value) + Val(TextBox5.Value)End Sub, Val関数で数値化して、Textbox6に代入しています。このVal関数を使うと、Textbox4かTextbox5に、数字以外が入力されても、計算をしないだけで、エラーにはなりません。, 次に、数値型変数にTextbox4の値を代入して、計算するようにします。Private Sub TextBox4_AfterUpdate()Dim num1 As Longnum1 = TextBox4.ValueTextBox6 = num1 + Val(TextBox5.Value)End Sub, Textbox4に数字が入力された場合は、正常ですが、漢字等が入力されると、エラーになります。文字を数値型変数には代入できませんから。, ただ、Val関数は、文字は無視するので、「ああ1123」と入力すると、1123の数値として変換します。 これが良いのかどうか。, どちらにしろ、数値型に変換するまえに、入力値のチェックとして、If IsNumeric(textbox4.value) = True Then ' 変換できるときだけ実行する    i = CInt(textbox4.value)End Ifなどでチェックすると良いです。, 【Textboxを桁区切り表示】 UserformのTextboxで、12345ではなく、12,345と表示したい場合。通常Textboxは、12345と表示されます。入力したままです。それを数値として桁区切りを表示したい場合は、Private Sub TextBox5_AfterUpdate()    TextBox5 = Format(TextBox5.Value, "#,##0")End Subとします。しかし、桁区切りしたあとは、文字列になっているので、Textboxの値を計算することはできません。Format(TextBox4.Value, "0") とするか、Val(Format(TextBox4.Value, "0"))とします。 (,書式を外します。), Textboxはセルとは違い、原始的です。というか、セルが優れすぎなのかもしれません。. Int( DateDiff("m", Cells(2,2), Cells(2,1) ) / 12 ) 生年月日を引数に実行日の年度末に何歳であるかを計算するVBAのサンプルプログラムです。datediff()関数を使用しますので3月生まれと4月生まれの違いに気を付ける必要があります。 教えてください!, 今の自分の年齢を取得するvbaコードが知りたいのですが  =DATEDIF(A1,A2,"y")&"年"&DATEDIF(A1,A2,"ym")+(DATEDIF(A1,A2,"md")>0)&"ヶ月" for MyRow=1 to (最終行) GetAge("2004/2/29", "2007/2/28") End Sub === あるいは、 あなたもQ&Aで誰かの悩みに答えてみませんか?, http://msdn2.microsoft.com/ja-jp/library/b5xbyt6f, http://www.kanaya440.com/contents/script/vbs/function/date/date_diff.html, http://www.relief.jp/itnote/archives/000423.php. END ? Sub old() BIツール(QlikSense/QlikView)の開発です。  (○年+○ヶ月/12)×基本給×係数 となります。 Cells(1, 1).Formula = "=datedif(B2,A2, ""Y"")" まだ未熟でコードを読みきれていませんが、これはIIf関数のような処理を用いているものでしょうか?またお聞きして申し訳ないです。大変勉強になり助かります。有難うございます。, 以下で計算できます。 そして、その真と偽の数値表現は、-1と0です。   X=Y-0 b = Cells(i, 1) のミス!, VBAで年齢計算をしたいのですが、「型が一致しない」と怒られます。 , DateDiff("yyyy", 誕生日- 1, 日付) - 1 _ if (cells(MyRow,1) =105 or cells(MyRow,1) =108 or cells(MyRow,1) =113 ・・・) then VBAコードのどこに不備があるか教えてください。 next MyRow シートAに、計算表があります。 2006.1.1で71