プロが教える店舗&オフィスのセキュリティ対策術

excel VBA ユーザーフォームを消すとTextBoxから反映させたセルの値も戻ってしまう

上記で困っているので解決策を教えて欲しいです。
VBA初心者です。

ユーザーフォームを表示して、フォーム内のTextBoxに入力した値をシート上のセルに反映させたいです。
実際反映するのですが、フォームが閉じると反映されていたセルの値が戻って(消えて)しまいます。

↓ユーザーフォーム上コマンドボタンのコードです。
コマンドボタンを押すとフォーム上テキストボックスに入力した値がセルに挿入されるようにしたつもりのものです。
-------------
Private Sub 更新_Click()

Worksheets("test").Range("AL11").Value = ""
Worksheets("test").Range("AL11").Value = UserForm1.TextBox1

Unload Me

End Sub
----------------

Unload Meを消して、xボタンで閉じても同じです。
また、Unload Meの前にActiveWorkBook.Saveでシートを上書きしてから閉じる動作にしても同じく消えてしまいました。

こちらは何故消えてしまうのでしょう。
初歩的な質問と思いますが、解決策を教えて頂けますと有り難いです。

何卒宜しくお願い致します。

A 回答 (3件)

こんばんは。



全てのコードを念のために表示された方が良いかもしれません。

Excelのバージョンは、365だったりしないでしょうか?
(365はVBAだと色々と不具合が多い様で、まともに動かない時がある)
    • good
    • 0

こんばんは


#1様同様ですが、簡単な確認方法の一例です
ステップ実行で確かめてみましょう。

Private Sub 更新_Click()

Worksheets("test").Range("AL11").Value = ""
Worksheets("test").Range("AL11").Value = UserForm1.TextBox1
Stop 'これを書き足す
Unload Me

End Sub

シートとVBEが見えるようにモニターに縮小化すると判り易いです。

UserFormを表示して更新ボタンを押します
追加したStopで処理が止まります
その後 F8キーを押すと1行ずつ実行されますので
AL11セルが消えるところまでF8キーを押してみてください。

消えた時に止まっているコードの1行前の処理がそれです。
その処理がどの様なもので何のため記されているか、確認しましょう。

原因の処理などが見つからなかった場合は、
新規ブックを作成してUserForm1、TextBox1を作成
ご質問のコードを貼り付け、シート名をtestに変更して実行環境を作り試してみましょう。
新規ブックでも同様の事象が発生した場合、アドインなどの処理かも知れませんが可能性は低いかと思います。。
    • good
    • 0

普通は消えません。



なので、どこかに「消す処理」があるはず。
そのブックのすべてのコードを洗ってください。

その他にも検証方法はいろいろ考えられますが、とりあえずそれを調べてみてください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
解決致しました。

お礼日時:2021/10/15 09:31

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

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


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