- 締切済み
マクロでエクセル内のテキスト加工(SQL文生成)
SQL文をエクセルマクロで生成したいのですが、この質問にはSQLの知識は全く不要と思います。 検索対象のデータベースからある項目が検索キーワードにヒットするものだけ、 指定の項目を抽出するSelect文を書いて作業しているのですが、 キーワードが多数あるため、手作業で書くのが大変なので、マクロで自動生成したいです。 Sheet1内に以下の内容を記述 ・データベース名 ・検索対象の項目名 ・抽出する項目名を以下のように縦に列挙(個数は変動) ・1行のSQL文に含めるキーワード数(後述) 項目名1 項目名2 項目名3 項目名4 項目名5 ・ ・ ・ Sheet2には検索キーワードが以下のように縦に列挙(個数は変動) キーワード1 キーワード2 キーワード3 キーワード4 キーワード5 ・ ・ ・ Sheet1、Sheet2の内容から、Sheet3に以下のSQL文を生成したいのです。 Select 要素1, 要素2, 要素3, 要素4, 要素5 FROM データベース名 WHERE 項目名 = 'キーワード1' OR 検索対象の項目名 = 'キーワード2' OR 項目名 = 'キーワード3' ただし、キーワードの数が数千になることもあるため、 前述のSheet1で指定した数値の数毎に次の行にしたいです。 例えばこんな感じ Select 要素1 FROM データベース名 WHERE 項目名 = 'キーワード1' OR 検索対象の項目名 = 'キーワード2' OR 項目名 = 'キーワード3' Select 要素1 FROM データベース名 WHERE 項目名 = 'キーワード4' OR 検索対象の項目名 = 'キーワード5' OR 項目名 = 'キーワード6' ・ ・ ・ Select 要素1 FROM データベース名 WHERE 項目名 = 'キーワード1000' OR 検索対象の項目名 = 'キーワード1001' ご存知の方いたらご教授ください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- bin-chan
- ベストアンサー率33% (1403/4213)
キーワード数に「後述」とあるがどこに説明がある? 条件が複数あってもorだから、inで列挙してはどうかな?
補足
ただし、キーワードの数が数千になることもあるため・・・以降が後述にあたります。 分かりづらくてすみません。 確かにinでまとめるべきですね。