VBAのEXITでのエラー

このQ&Aのポイント
  • エクセルのフォームで入力したデータをシートに保存しようとしています。
  • ID番号でシートからvlookupで検索を行い、データがあれば自動で個人情報を入力します。
  • Private Sub TextBoxID_Exit(ByVal Cancel As MSForms.ReturnBoolean)にコマンドを記入しているのですが、終了する際にテキストボックスに値がないためエラーが発生します。どうすればエラー回避できるでしょうか?
回答を見る
  • ベストアンサー

VBAのEXITでのエラー

エクセルのフォームで入力したデータをシートに保存しようとしています。 ID番号でシートからvlookupで検索を行い、データがあれば自動で個人情報を入力します。マウス操作無しで連続入力したいので、一度登録ボタンをクリックし、シート最下行に登録したら、その後タブをIDテキストボックスにフォーカスします。Private Sub TextBoxID_Exit(ByVal Cancel As MSForms.ReturnBoolean)にコマンドを記入しているのですが、終了する際にテキストボックスに値がないためエラーが発生します。どうすればエラー回避できるでしょうか?フォームの画像とコマンドの一部を下記に記入します。よろしくお願いします。 フォーカスがIDにある状態で終了ボタンを押すとexitプロシージャが発生するためのエラーだと思うんですが、どうでしょうか? うまく説明できていないかもしれませんがよろしくお願いします。 ***************************************************************** Private Sub TextBoxID_Exit(ByVal Cancel As MSForms.ReturnBoolean) ID = TextBoxID.Text 'テキストボックスIDの値を取得 On Error GoTo ErrHdl '下記コマンドvlookupがエラーの場合ErrHdl処理する Worksheets("data").Activate 'dataシートをアクティブにする With ActiveSheet TextBoxシメイ.Value = Application.WorksheetFunction.VLookup(ID, Range("b2:E65536"), 2, False) TextBox誕生日.Value = Application.WorksheetFunction.VLookup(ID, Range("b2:E65536"), 3, False) sex = Application.WorksheetFunction.VLookup(ID, Range("b2:E65536"), 4, False) If sex = "M" Then OptionButton男.Value = True Else OptionButton女.Value = True End If TextBox体重.SetFocus End With Exit Sub ErrHdl: 'IDがなかった場合の処理 If TextBoxシメイ.Value = "" Then MsgBox "新規です" Exit Sub End If End Sub ************************************************************************************** Private Sub CommandButton登録_Click() With Worksheets("data") lastrow = .Cells(Rows.Count, 1).End(xlUp).Row + 1 '最終行にデータを追加する .Cells(lastrow, 1).Value = TextBox撮影日.Text '最終行の1列目の値 .Cells(lastrow, 2).Value = TextBoxID.Text .Cells(lastrow, 3).Value = TextBoxシメイ.Text .Cells(lastrow, 4).Value = TextBox誕生日.Text .Cells(lastrow, 5).Value = sex .Cells(lastrow, 6).Value = TextBox体重.Text .Cells(lastrow, 7).Value = ComboBox撮影区分.Text .Cells(lastrow, 8).Value = ComboBox撮影部位.Text .Cells(lastrow, 9).Value = TextBoxFOV.Text .Cells(lastrow, 10).Value = TextBox寝台高.Text .Cells(lastrow, 11).Value = TextBoxDLP.Text .Cells(lastrow, 12).Value = TextBoxCTDI.Text .Cells(lastrow, 13).Value = TextBox電圧.Text .Cells(lastrow, 14).Value = TextBoxmAs.Text End With 'TextBox撮影日.Text = "" TextBoxID.Text = "" TextBoxシメイ.Text = "" TextBox誕生日.Text = "" OptionButton男.Value = False OptionButton女.Value = False TextBox体重.Text = "" ComboBox撮影区分.Text = "" ComboBox撮影部位.Text = "" TextBoxFOV.Text = "" TextBox寝台高.Text = "" TextBoxDLP.Text = "" TextBoxCTDI.Text = "" TextBox電圧.Text = "" TextBoxmAs.Text = "" Me.ComboBox撮影区分.Text = 区分 '初期値を再設定(この変数は他で宣言済み) Me.ComboBox撮影部位.Text = 部位 Me.TextBox電圧.Text = 電圧 TextBoxID.SetFocus 'TextBoxIDに移動 End Sub ***************************************************************************** Private Sub CommandButton終了_Click() Unload UserForm2 'フォームを消去 End Sub **********************************************************************************

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.8

> セルの書式設定で今まで登録していたIDは全て数値に変換したんですが・・・(/_;)。 文字列として認識されている数字は形式を数値にしてもデータは文字列(テキスト形式)のままなので、同じ値を再入力するか、空白のセルをコピーして数字のセルをすべて選択し、「形式を選択して貼り付け」で「演算」の「加算」をすることにより数値にすることができます。

makisaori
質問者

お礼

毎回ありがとうございます。 次回もよろしくお願いいたします。

makisaori
質問者

補足

ありがとうございました。 うまくいきました。 If TextBoxID.Text = "" Then Exit Sub End If を記入してから検索ができなくなったのではなく、数値と数字(文字)が混在していたようです。kkkkmさんの指摘からワークシートを検証したら判明しました。私だけが登録していたのではなく数人で登録していたので混在していたようです。また、0から始まるIDもあったので、一部文字入力していたようです。全て文字に変換してFINDを利用して解決しました。 ありがとうございました。 また、別問題ができましたので、またお知恵を拝借できればと思います。 TextBox誕生日.Value = Application.WorksheetFunction.VLookup(ID, Range("b2:E65536"), 3, False) での値を日付形式でTEXTBOXに引っ張りたいのです。 別スレッド立てますのでまたよろしくお願いいたします。

その他の回答 (7)

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.7

No5の回答は、No4の補足コメントを見る前に書いたものなので、補足コメントからしたら一部ちぐはぐなものになっています。 それと、No5のコードの一部を変更します。 Set FRange = .Range("b2:E65536").Find(ID, LookIn:=xlValues, LookAt:=xlWhole) は Set FRange = .Range("b2:B65536").Find(ID, LookIn:=xlValues, LookAt:=xlWhole, MatchByte:=False) に変更してください。 半角と全角を区別しない設定で検索します。 範囲をコピペしたのでそのままになってしまったE65536はB65536でした。 何度も検査して追記されていったデータからID検索して名前とかを読み込むのですね。登録の方はあまり見てなかったので気が付きませんでした。 現状では最古のものを読み込むことになりますが、引数にSearchDirection:=xlPreviousを追加すれば最後から探す(本当はB1から探すけどB1はヒットせず逆順検索なので最後からになる)ので最新のものが読みだせます。

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.6

> 以前登録されたIDと同じIDで新規登録すると、新規登録したIDはヒットしますが、過去のものはヒットしません。 Vlookupは一個だけ見つけて古いもの(行番号が小さいもの)がヒットしそうなものですが、IDが数値と数字なのかもしれません。 ワークシートの検索は数値・数字関係なく全て見つけます。 実際は同じIDで登録するものなのでしょうか?としたらVlookupは使えませんし、Findを利用してもFIndNextで最後のデータを取るということになると思います。

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.5

> これまで入力していたデータのIDが検索できません ふと思ったのですが、これは今まで入力していたものが検索でみつからないということでしょうか。 IDが数値の場合、Vlookupだと数値と数字は別物として扱いますので、その影響かもしれません。 ErrHdl: 'IDがなかった場合の処理 If TextBoxシメイ.Value = "" Then MsgBox "新規です" Exit Sub End If を ErrHdl: MsgBox "エラー" & Err.Number & Chr(13) & Err.Description Exit Sub End If としてエラーを確認してください。あるのに見つからなくて、IDが数値でVlookupがエラーなら数値と数字の関係だと思います。 VlookupをやめてFindにしてみたらいかがでしょう。 Private ID As String にしておいてください。 Private Sub TextBoxID_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim FRange As Range If TextBoxID.Text = "" Then Exit Sub End If ID = TextBoxID.Text On Error GoTo ErrHdl Worksheets("data").Activate 'dataシートをアクティブにする With ActiveSheet Set FRange = .Range("b2:E65536").Find(ID, LookIn:=xlValues, LookAt:=xlWhole) If FRange Is Nothing Then MsgBox "新規です" Exit Sub End If TextBoxシメイ.Value = FRange.Offset(0, 1).Value TextBox誕生日.Value = FRange.Offset(0, 2).Value sex = FRange.Offset(0, 3).Value If sex = "M" Then OptionButton男.Value = True Else OptionButton女.Value = True End If TextBox体重.SetFocus End With Exit Sub ErrHdl: MsgBox "エラー" & Err.Number & Chr(13) & Err.Description End Sub

makisaori
質問者

補足

ありがとうございます。ワークシート検索で数値と文字列関係なく検索しているというのは初耳でした。しかし、ワークシートはセルの書式設定で今まで登録していたIDは全て数値に変換したんですが・・・(/_;)。ワークシート上で登録できないIDの書式を再確認してもやはり数値になっていました。もう一度ワークシートをコピーしてやってみます。FIND関数にも変更してみます。

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.4

> これまで検索できていたIDでの検索機能がすべて新規になってしまいます。 新規というのは MsgBox "新規です" が出るという事でしょうか。 でしたら、その後の処理(Vlookupとは限らない)でエラーになっているという事ですからそこを調べないと何とも言えません。 > これまで入力していたデータのIDが検索できません どこに入力していたデータでしょうか。TextBoxIDの履歴を取るようにはできていないと思いますが…。 IDはグローバル変数だと思いますから、前回の値を保持していると思いますが ID = TextBoxID.Text で上書きしていますし、履歴にはならないですよね。 Private Sub TextBoxID_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBoxID.Text="" Then Exit Sub End if は、TextBoxIDにデータがなければ_Exitの処理をしないというだけですし… 上記がない時にTextBoxIDにデータがない状態で、他のテキストボックスを選択した場合エラーになっていなかったでしょうか。

makisaori
質問者

補足

ありがとうございます。dataワークシートから Worksheets("data").Activate With ActiveSheet TextBoxシメイ.Value = Application.WorksheetFunction.VLookup(ID, Range("b2:E65536"), 2, False) TextBox誕生日.Value = Application.WorksheetFunction.VLookup(ID, Range("b2:E65536"), 3, False) sex = Application.WorksheetFunction.VLookup(ID, Range("b2:E65536"), 4, False) で、これまでに登録したデータがあれば、氏名などのデータは入力の手間を省く為にvlookupでテキストボックスに値を入れています。 コマンド追記する前まではできていました。(フォーム入力する前の過去のデータを500件くらい) おかしなことに、以前登録されたIDと同じIDで新規登録すると、新規登録したIDはヒットしますが、過去のものはヒットしません。 しかし、ワークシートで検索をかけると過去のものも新規登録したものもヒットします。 何かバグでしょうか?

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.3

> 終了ボタンのプロシージャに記入しましたが、同じでした。 Private Sub TextBoxID_Exit(ByVal Cancel As MSForms.ReturnBoolean) ここに入れてください。↓でエラーですよね。 ID = TextBoxID.Text 'テキストボックスIDの値を取得

makisaori
質問者

補足

ありがとうございます。さきほどやってみました。空白のままでの終了はうまくいきました。 しかし、これまで検索できていたIDでの検索機能がすべて新規になってしまいます。 このコマンドを入力してから登録した番号は検索できるのですが、これまで入力していたデータのIDが検索できません。原因が全くわからないです。

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.2

> 終了する際にテキストボックスに値がないためエラーが発生します でしたら If TextBoxID.Text="" Then Exit Sub End if で抜ければいいと思います。

makisaori
質問者

補足

ありがとうございます。終了ボタンのプロシージャに記入しましたが、同じでした。

  • kon555
  • ベストアンサー率52% (1751/3359)
回答No.1

 想定されている挙動と現状との差がいまいち把握できないのですが、要は『処理自体は正常に行われるが、終了時にエラーを吐く』という形ですか?  もしそうであれば、一番てっとり早いのは終了ボタンを作るなり、特定のフォームのデータが空白なりの条件付けで、On Error Resume Next を入れてから終了させる事です。  処理自体が正常に行われているなら、ですけど。

makisaori
質問者

補足

ありがとうございます。添付画像に映ってなかったですが、下に終了ボタンと登録ボタンが作ってあります。IDにフォーカスがある状態で終了ボタンを押すとエラーになります。

関連するQ&A

  • excel VBA コンボボックスでシート選択後エラー

    どなたかご教授願います。 ユーザーフォームにコンボボックスを配置し、ブック内のシートすべて選択できるようにしてます。選択後シートに移動するのですが、同じユーザーフォームのテキストボックス等に入力した後、コマンドボタンをクリックするとエラーとなります。しかしテキストボックス等の値は間違いなく入力されています。よろしくお願いします。 Private Sub ComboBox1_Change() → Sheets(Me.ComboBox1.Value).Select       この部分が黄色になってしまいます End Sub Private Sub CommandButton1_Click() Dim myRow As Long ActiveSheet.Select myRow = Range("B65536").End(xlUp).Offset(1, 0).Row '各テキストボックの値をセルに入力 Cells(myRow, 2).Value = TextBox1.Value Cells(myRow, 3).Value = TextBox1.Value Cells(myRow, 4).Value = ComboBox2.Value Cells(myRow, 6).Value = TextBox2.Value Cells(myRow, 7).Value = TextBox3.Value Cells(myRow, 8).Value = TextBox4.Value 'Cells(myRow, 9).Value = TextBox5.Value '書式設定 Cells(myRow, 2).NumberFormatLocal = "m" Cells(myRow, 3).NumberFormatLocal = "dd" Cells(myRow, 6).NumberFormatLocal = "#,###" 'セルに入力が各テキストボックの値をクリア ComboBox1.Value = "" ComboBox2.Value = "" TextBox2.Value = "" TextBox3.Value = "" TextBox4.Value = "" 'フォーカス移動 ComboBox2.SetFocus End Sub

  • EXCEL VBA SetFocus について教え

    ComboBox3 で郵便番号 住所 を選択して TextBox8 に表示 その後番地等を記入するため Private Sub ComboBox3_AfterUpdate() '郵便番号 住所 Workbooks("*****.xls").Activate Worksheets("**").Activate With UserForm7 No = .TextBox1.Value .TextBox7.Value = Mid(.ComboBox3.Text, 1, 8) Cells(No + 1, 7).Value = Mid(.ComboBox3.Text, 1, 8) '郵便番号 .TextBox8.Value = Mid(.ComboBox3.Text, 10) '住所 Cells(No + 1, 8).Value = .TextBox8.Value .ComboBox3.Visible = False .TextBox8.SetFocus .TextBox8.TabIndex = 4 .TextBox8.Text = Mid(.TextBox8.Text, 1) End With End Sub 上のコードで TextBox8 の テキストの最後にカーソルを移動したいのですが TextBox8 に カーソルは現れません。(UserForm7の最初のTextBox1にフォーカスが移る) UserForm8 にも 同様なコードが有りますがこちらは期待どうり動作します。 タブオーダーとかの違いは有りますが関係するのでしょうか  よろしくお願いします。

  • エクセル VBA OptionButtonからTextBox

    すいません! OptionButtonなら 下記の記述でエラー表示を 簡単にできるのですが これがOptionButtonではなく TextBoxならどのように変化したら 良いのでしょうか? すいません、教えて下さい! Private Sub 記録_Click() Dim i As Integer Dim Cnt As Integer Cnt = 0 For i = 1 To 6 Step 1 If Me.Controls("OptionButton" & i).Value Then Cnt = i Exit For End If Next i If Cnt = 0 Then MsgBox "選択されていません" Exit Sub End If If Me.Controls("Combobox" & Cnt).Value = "" Then MsgBox Me.Controls("OptionButton" & Cnt).Caption & " の内容が選択されていません" Exit Sub End If With 記入フォーム .TextBox5.Value = Me.Controls("OptionButton" & Cnt).Caption .TextBox6.Value = Me.Controls("Combobox" & Cnt).Value End With Unload Me End Sub

  • オプションボタン選択でコンボボックス有効

    ExcelVBAでユーザーフォームを作成しているのですが、昨日までうまく動作していたことが、突然動かなくなりました。 オプション1を選択 ↓ コンボボックス1有効  ※他のコンボボックスは無効 ↓ オプション2を選択 ↓ コンボボックス2有効  ※コンボボックス1も含め他のコンボボックスは無効 という感じで動作させたいです。 書いたコードはこんな感じです。 Private Sub OptionButton1_Click () Dim i As Long Dim lastRow As Integer lastRow = Cells(Row.Count, 1).End(xlUp).Row If OptionButton1.Value = True Then OptionButton1.Enabled = True With ComboBox1 If ComboBox1 = "" Then For i = 2 To lastRow .AddItem Worksheets("sheet1").Cells(i, 1).Value Next i End If End With ComboBox1.ListIndex = 0 ComboBox2.Enabled = False ComboBox3.Enabled = False End If End Sub コードの間違いや改善点などありましたら教えて下さい。 よろしくお願いします。

  • exel vba ワークシートデータを日付にしたい

    ワークシートからFIND関数でID検索し、生年月日の検索値をテキストボックスに表示します。 過去データがない場合は日付形式で入力を促すため、日付形式でない場合誕生日EXITでエラーメッセージを表示させます。 過去データがあった場合はワークシートからデータを表示するのですが、ワークシートの日付データが25897のような数値で表示されるのでエラーになります。 ワークシート自体には日付形式で入力されていても、フォームにVBAで値を引っ張ると数値になってしまいます。数値を日付データに戻して表示はどうすればよいでしょうか? ’IDを入力した後のBVAです。 ************************************************************************************************* Private Sub TextBoxID_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim FRange As Range If TextBoxID.Text = "" Then Exit Sub End If ID = TextBoxID.Text On Error GoTo ErrHdl Worksheets("data").Activate With ActiveSheet Set FRange = .Range("b2:b65536").Find(ID, LookIn:=xlValues, LookAt:=xlWhole) If FRange Is Nothing Then MsgBox "新規です" Exit Sub End If TextBoxシメイ.Value = FRange.Offset(0, 1).Value TextBox誕生日.Value = FRange.Offset(0, 2).Value sex = FRange.Offset(0, 3).Value If sex = "M" Then OptionButton男.Value = True Else OptionButton女.Value = True End If TextBox体重.SetFocus End With Exit Sub ErrHdl: MsgBox "エラー" & Err.Number & Chr(13) & Err.Description End Sub *********************************************************************************************** Private Sub TextBox誕生日_Exit(ByVal Cancel As MSForms.ReturnBoolean) If IsDate(TextBox誕生日.Text) = False Then MsgBox "日付型データで入力.ex:H10/5/5" TextBox誕生日.Value = "" Else Exit Sub End If End Sub

  • VBA初心者です。

    VBA初心者です。 ユーザーフォームにテキストボックスとコンボボックスを1つずつ作り、それらを Private Sub ComboBox1_Change()    TextBox1.Value = ComboBox1.Value End Sub というふうに繋いでるとき、テキストボックスにフォーカスをあてさせないようするため、 Private Sub UserForm_Initialize()    TextBox1.Enabled = False End Sub このようにしました。ここまでは問題ありません。質問したいことは、このときテキストボックスに表示させる文字が淡色になるのを防ぐ方法です。    TextBox1.Locked = True これを上に付け加えればうまくいきそうなのですが、うまくいきませんでした…。どなたか解決方法を教えて下さい。

  • エクセル VBA ID入力について

    TextBox2に数字をIDを入力して 名前をComboBox1.Text に表示させるようにしました。 しかし、数字入力すると認識される物もあるのですが 表示されない=数字の値は同じ数字 なぜなのでしょうか? Private Sub TextBox2_Change() Dim vRet As Variant vRet = Application.VLookup(TextBox2.Text, _ Sheets("マスタ").Range("A:B"), _ 2, _ False) If VarType(vRet) <> vbError Then ComboBox1.Text = vRet Else ComboBox1.Text = "<< 該当なし >>" End If End Sub Private Sub UserForm_Initialize() With TextBox2 .SetFocus .Text = "ID入力"  .SelLength = Len(.Text) End With 教えて下さい!Sheet2の数字の書式が問題なのでしょうか?

  • エクセル VBAのチェックボックスについて

    お読みくださり、ありがとうございます。 エクセル初心者でございます。 エクセルのマクロなのですが、 お詳しい方、是非教えて欲しいです!汗 調子に乗って入力フォームなるものを作りました。 入力フォームの中にて、チェックボックスで「ある」「なし」の項目を入れてみたのですが、チェックしていないのに、値が入る現象が起きています汗 以下、素人が書いたコードを恥を承知で記載させていただきます。 Private Sub CheckBox1_Click() If CheckBox1.Value = True Then OK = "○" End If End Sub Private Sub CheckBox2_Click() If CheckBox2.Value = True Then NO = "×" End If End Sub Private Sub UserForm_Click() End Sub '以下のコードは、登録ボタンがクリックされたときの処理! Private Sub 登録ボタン_Click() If TextBox1.Text = "" Then MsgBox "グッズ名を入力してください。" Exit Sub End If If TextBox2.Text = "" Then MsgBox "アプローチ先を入力してください。" Exit Sub End If With Worksheets("協賛グッズ") With Cells(Rows.Count, 2).End(xlUp) .Offset(1, 0).Value = TextBox1.Text .Offset(1, 1).Value = mori .Offset(1, 2).Value = mori2 .Offset(1, 3).Value = TextBox2.Text .Offset(1, 5).Value = TextBox3.Text .Offset(1, 6).Value = TextBox4.Text .Offset(1, 7).Value = TextBox5.Text .Offset(1, 8).Value = TextBox6.Text End With End With TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" TextBox6.Text = "" CheckBox1.Value = False CheckBox2.Value = False End Sub 以上です。 おかしなところ満載かと思いますが、 チェックを入れた項目だけ値を入れたいと考えております。 おわかりになるかたおりましたら何卒お助けください汗 よろしくお願いいたします。

  • VBA 今日の日付の繰り返しの記述

    いつもお世話になります。 WIN7 EXCELL2010 です。 参考に下記のようなマクロを記述しています。 TextBox1から順次ComboBox1と移動し又TextBox1に戻るのはうまく移動します。 最初の時の 「TextBox1.Text = Format(Date, "mm/dd")」は上手く表示してくれますが一巡して2度目になると表示されません。 私が多分ですが Do~Loop と思うのですがうまくゆきません。 恐れ入りますがご指導いただけませんでしょうか。 マクロの記述 Private Sub UserForm_Initialize() With ComboBox1 .AddItem "1" .AddItem "2" .AddItem "3" End With TextBox1.Text = Format(Date, "mm/dd") End Sub '**************** '設定 '**************** Private Sub CommandButton1_Click() ' y = 2 Do While Cells(y, 2) <> "" y = y + 1 Loop Cells(y, 2) = TextBox1.Text Cells(y, 3) = TextBox2.Text Cells(y, 4) = TextBox3.Text Cells(y, 11) = ComboBox1.Text TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" ComboBox1.Text = "" TextBox1.SetFocus End Sub

  • EXCEL VBA フォームコード簡素化

    EXCEL VBAのフォームにテキストボックスを複数作成しております。 下記のように複数のテキストボックスで同じ処理を行うのですが コントロール→ループか何かで簡素化できないでしょうか? Private Sub TextBox17_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox17.Value = Format(TextBox17.Value, "0.00") End Sub Private Sub TextBox18_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox18.Value = Format(TextBox18.Value, "0.00") End Sub Private Sub TextBox19_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox19.Value = Format(TextBox19.Value, "0.00") End Sub Private Sub TextBox20_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox20.Value = Format(TextBox20.Value, "0.00") End Sub Private Sub TextBox21_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox21.Value = Format(TextBox21.Value, "0.00") End Sub Private Sub TextBox22_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox22.Value = Format(TextBox22.Value, "0.00") End Sub 以上お力添えお願いいたします。

専門家に質問してみよう