- ベストアンサー
EXCEL VBAでSQL文自動作成
VBA初心者です。 エクセルに入ってる値をVBAで自動的にINSERT文を作りたいと思っております。 とりあえず簡単でいいんで教えていただけないでしょうか。 ---------------------------------------------------------- A1:テーブル名 B1:shain A2:カラム名 B2:ID C2:NAME D2:address A3:型 B3:int C3:varchar(20) D3:varchar(30) B:41 C4:鈴木 D4:suzuki B:52 C5:阿部 D5:abe B:63 C6:田口 D6:taguchi 上記のようなエクセルがあります。 INSERT INTO shain(ID,NAME,address) values(1,'鈴木','suzuki'); というINSERT文を作りたいと思っております。 他にツールはあると思いますが、VBAのみで作らなければなりません。 めっちゃ困ってるんでどなたか助けてください
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
1.B1からテーブル名を取得して、"INSERT INTO テーブル名"という文字列を作成する。 2.B2から横方向に空セルまで走査して、"(カラム1,カラム2,カラム3,...)"の文字列を作る。 3.B4から横方向に2で走査した列と同じ数だけ走査して、"VALUES(値1,値2,値3,...)"の文字列を作る。このとき、列毎に3行目の値(型名)を確認して、型が文字列(charを含む)なら''で値を括る。 4.1,2,3で作った文字列を結合。 5.空行になるまで3,4を繰り返す。
その他の回答 (1)
- abekkan
- ベストアンサー率27% (83/305)
VBAでももちろん作れますが、もっと簡単に作れますよ。 E4セルに、 ="INSERT INTO "&$B$1&"("&$B$2&","&$C$2&","&$D$2&") values ("&B4&","&C4&","&D4&");" と書いて、セルをコピーしてE5,E6以下のセルにペースト。 表示されたE4~E6セルの結果をコピーしてテキストに貼り付け。 でどうでしょうか。