• ベストアンサー

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のみで作らなければなりません。 めっちゃ困ってるんでどなたか助けてください

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

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.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)
回答No.1

VBAでももちろん作れますが、もっと簡単に作れますよ。 E4セルに、 ="INSERT INTO "&$B$1&"("&$B$2&","&$C$2&","&$D$2&") values ("&B4&","&C4&","&D4&");" と書いて、セルをコピーしてE5,E6以下のセルにペースト。 表示されたE4~E6セルの結果をコピーしてテキストに貼り付け。 でどうでしょうか。

関連するQ&A