• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAエクセルシートの値をIN句)

VBAエクセルシートの値をIN句で取得する方法

このQ&Aのポイント
  • VBAエクセルシートの値をIN句で抽出する方法についてアドバイスをいただきたいです。
  • 抽出リストシートを呼び出すことで、SQL文の修正を行わずに商品の抽出を可能にしたいです。
  • テーブルが500万レコード以上あるため、IN句を使用する際の負荷についても心配です。

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

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは 30種類位なら、   Dim c()   Dim s   As String   Dim r   As Range   Dim t   As Range      On Error Resume Next   Set t = Worksheets("抽出リスト").Range("A:A").SpecialCells(xlCellTypeConstants)   If t Is Nothing Then Exit Sub   On Error GoTo 0   ReDim c(1 To t.Count)   For Each r In t     i = i + 1     c(i) = "'" & r.Value & "'"   Next   s = Join(c, ",") と、IN句に指定するリストを作成して、   stSQL = stSQL & "WHERE ITM150 IN (" & s & ")" のように指定してはどうですか?

sujino
質問者

お礼

ushi2015様 回答有難うございます。 なるほど、一旦、抽出リスト(ワークシート)から、カンマ区切り変数を作って、IN句に入れるわけですね。 甘い考えで、直接IN句にセル範囲をかけないかと思ってました。 上記のソース試してみます、有難うございました。

関連するQ&A