Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2121 / 76734 ←次へ | 前へ→

【80257】Re:Targetにユーザーフォームの値を取得する
回答  亀マスター  - 18/12/4(火) 0:02 -

引用なし
パスワード
   >Target.Value=変数を書くのは、
>ユーザーフォームとシートのどちらに、どのタイミングでしょうか?

やり方はいくつかあると思いますが、とりあえず2つほど

1.フォームのcmb_syukeikaisi_Clickで実行
1-1
bufはcbm_sansyou_Clickの中ではなくUserFormの直下で宣言するか、標準モジュールにパブリック宣言する。
1-2
標準モジュールにRange型の変数をパブリック宣言で用意しておく(例:Rng)
1-3
UserForm.Showの前に、RngにTargetの参照を格納。
(直接Targetを使わないのは、TargetはBeforeDoubleClickの中でしか動かないから)
  Set Rng = Target
1-4
bufに必要な値が入ったら、Rngを介してTargetに値を代入。
  Rng.Value = buf

2.WorkSheetのBeforeDoubleClickで実行
2-1
bufは標準モジュールにパブリック宣言する。
2-2
bufに必要な値が入ったら、フォームを閉じる。
  Unload Me
2-3
WorkSheetのUserForm.Showの続きでTargetにbufの値を代入。
  UserForm.Show
  Target.Value = buf


なお、質問に対する回答ではないのですが、ActiveWorkbookやActiveSheetは何らなの都合で狙ったブックやシートがアクティブになっていなかったときに不具合が起こるので、ブックを開いたときにWorkbook型やWorksheet型の変数に参照を格納し、それを使って操作した方が確実かと思います。
13 hits

【80251】Targetにユーザーフォームの値を取得する babolat 18/12/3(月) 19:28 質問[未読]
【80253】Re:Targetにユーザーフォームの値を取得する 亀マスター 18/12/3(月) 19:45 回答[未読]
【80255】Re:Targetにユーザーフォームの値を取得する babolat 18/12/3(月) 20:03 質問[未読]
【80257】Re:Targetにユーザーフォームの値を取得する 亀マスター 18/12/4(火) 0:02 回答[未読]
【80259】Re:Targetにユーザーフォームの値を取得する babolat 18/12/5(水) 11:49 質問[未読]
【80260】Re:Targetにユーザーフォームの値を取得する 亀マスター 18/12/5(水) 23:44 回答[未読]

2121 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free