度重なる質問で恐縮ですが宜しく御願い致します。
エクセルからフォームを呼び出し、入力してOKボタン(Commandbutton1)を押すとsheet2にデータを書き込むようにしました。さらに再度フォームを開いた時に、前回OKを押してsheet2に書き込んだデータがフォーム上に入力済みになっているようにしました。再度フォームを開いた時に前回のデータが入力済みで開く事は開くのですが、逆にsheet2のデータを全削除したあとに開いても、記述が残った状態でフォームに表示されてます。つまり、sheet2のセルをformが開く時に読み込んでないと言うことです。メモリか何かでしょうか?以下に書き込む時のコードと、開く時のコードを記載させていただきます。
ご教授いただければと思います。解りにくければ補足させていただきます。宜しくお願いします。
'Formの記入をSheet2に反映する
Private Sub CommandButton1_Click()
Dim i As Integer
With Worksheets("data")
'「申込書」の値を書き出し
For i = 1 To 21
.Range("A" & i) = UserForm1.Controls("t" & i).Value
Next(・・・続く)
'Formを呼び出したとき、Sheet2から読み込む
Private Sub UserForm1_Initialize()
Dim i As Integer
With Worksheets("data")
'「申込書」の値を読み込み
For i = 1 To 21
UserForm1.Controls("t" & i).Value = .Range("A" & i)
Next(・・・続く)
No.2ベストアンサー
- 回答日時:
UserForm1を開く時は、単に
UserForm1.Show
と記述されているのでしょうか?もしそうならば、開くときは、
Load UserForm1
UserForm1.Show
とし、閉じる時は
Userform1.Hide
Unload Userform1
とすれば、UserForm1をメモリにロード→開く→(処理)→閉じる→メモリからUserForm1をアンロードと言う流れになるので、メモリ上に残っているのが原因だとしたら、これで解消できるハズです。
それでもだめなら、
Private Sub UserForm1_Initialize()
Dim i As Integer
'オブジェクトの初期化
For i = 1 To 21
UserForm1.Controls("t" & i).Value = ""
Next
'「申込書」の値を読み込み
For i = 1 To 21
UserForm1.Controls("t" & i).Value = .Range("A" & i)
Next(・・・続く)
で大丈夫だと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) userformでSheetを選択して開くコード 1 2023/05/15 16:27
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Form_Load と Form_Activate の...
-
ユーザーフォームを表示中にシ...
-
'ユーザーフォーム右上隅の[×...
-
エクセルVBAのフォームを最...
-
VBAで画像を表示する方法
-
モーダルフォームとモードレス...
-
Hideについて(.NET)
-
ユーザーフォームのテキストボ...
-
Microsoft Formsの「個人情報や...
-
クリックイベントなのに、2回ク...
-
ユーザーフォームのコピー?
-
ACCESSのフォーム、開くんです...
-
ExcelVBAのユーザーフォームの...
-
MSGBOXのフォント大きさ変更
-
複数モニタ使用時のフォームの...
-
Accessで、一つのフォーム画面...
-
指定の動作中ユーザーフォーム...
-
フォームに引数を渡す方法のやり方
-
フォームを最背面に設定したい...
-
ユーザーフォームのラベルに時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
クリックイベントなのに、2回ク...
-
Microsoft Formsの「個人情報や...
-
ユーザーフォームのテキストボ...
-
【VBAユーザーフォームで閉じる...
-
モーダルフォームとモードレス...
-
VBAでユーザーフォームを再表示...
-
エクセルVBAのフォームを最...
-
MSGBOXのフォント大きさ変更
-
Form_Load と Form_Activate の...
-
ユーザーフォーム上に現在日時...
-
Excelにて、ユーザーフォームで...
-
Hideについて(.NET)
-
フォームウィンドウを最前面に...
-
コントロールの存在確認
-
VBA(エクセル)のユーザー...
-
'ユーザーフォーム右上隅の[×...
-
エクセルVBA フォーム上でOnkey...
-
ブックをCloseまたはQuitで閉じ...
おすすめ情報