• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのユーザーフォーム上のテキストボックスと外部データ取込機能につ)

エクセルのユーザーフォーム上のテキストボックスと外部データ取込機能について

このQ&Aのポイント
  • エクセルのユーザーフォーム上でテキストボックスと外部データ取込機能を使用する方法についての質問です。
  • 特定の条件に応じて外部データを取り込むため、テキストボックスに入力した値を特定のセルにセットし、その値をもとに外部データを抽出しますが、その結果が正しく表示されない問題が発生しています。
  • フォームが起動されたままでも、シートでの動作をそのままフォームの別のテキストボックスに戻す方法を教えていただきたいです。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

自動更新パラメータ設定のQueryTableについて。 ユーザーフォームがモーダルの場合、ユーザーフォームが閉じられた後に更新が始まります。 ユーザーフォームがモードレスの場合、実行中のプロシージャが終了した後に更新が始まります。 ([winXP/xl2003|2007]で確認) 対処方法としては、自動更新パラメータ設定を解除して任意更新にした上で コード内でRefreshメソッドを実行すると良いです。 自動更新を解除したくない場合は、その、『解除-再設定』自体もコード内で処理します。 Private Sub CommandButton1_Click()   Dim x As Long   Dim i As Long   Dim flg() As Boolean   With Sheets("Meisai").QueryTables(1)     x = .Parameters.Count     ReDim flg(1 To x)     'パラメータのRefreshOnChange設定を記憶してFalseに     For i = 1 To x       With .Parameters(i)         flg(i) = .RefreshOnChange         .RefreshOnChange = False       End With     Next     Sheets("Meisai").Range("F1").Value = TextBox23.Value     .Refresh BackgroundQuery:=False     'パラメータのRefreshOnChange設定を戻す     For i = 1 To x       .Parameters(i).RefreshOnChange = flg(i)     Next   End With   TextBox27.Text = Sheets("Hijyu").Range("A2").Value   Erase flg End Sub

Rika2591
質問者

お礼

回答ありがとうございます。これから動作確認をとります。 取り急ぎお礼の投稿とさせて頂きます。 ありがとうございました。

関連するQ&A

専門家に質問してみよう