• ベストアンサー

エクセルでSQL文を自動で出力させたい

INSERT INTO `TableInfo` ( `author_id` , `name` , `no` , `addr` ) VALUES ('其一', '其二', '其三', '其四'); 上記のようなテーブルがありINSERTでデータを登録させていきたいと思っています。 そこで、エクセルに打ち込んだデータを、 '其一' '其二' '其三' '其四' に置き換えてSQL文としてテキストファイル等に出力させたいと思います。 エクセルはあまり得意ではなくどうやれば良いか判りません。 どなたか御教授お願い致します。

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

  • ベストアンサー
noname#27115
noname#27115
回答No.2

1. ALT+F11でVBAエディタ起動 2. 挿入 → 標準モジュール 3. 左窓に Module1が追加されたらダブルクリック 4. 右窓に 下のコードを張りつける 5. abcプロシージャーを実行する なお、最初は一気に実行するのでなくて1行ずつ確かめながらやる方がいいかもですね。 Sub abc() Dim SQL As String Dim i As Long Dim FNum As Long For i = 1 To 99 SQL = "INSERT INTO `TableInfo` ( `author_id` , `name` , `no` , `addr` )" SQL = SQL & " VALUES (" & Cells(i, 1) & "," & Cells(i, 2) & "," & Cells(i, 3) & "," & Cells(i, 4) & ");" FNum = FreeFile Open ActiveWorkbook.Path & "\" & Format(i, "00") & ".sql" For Output As #FNum Print #FNum, SQL Close #FNum Next i End Sub

すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#27115
noname#27115
回答No.1

SQL文の前後がわかりませんが、たとえばABCD列の値を1行目から 100行目までSQL文に組み込むなら次の感じでしょうか? 1=A列 2=B列 3=C列 4=D列 Cells(1,1)でA1の値となります。 For i = 1 to 100 INSERT INTO `TableInfo` ( `author_id` , `name` , `no` , `addr` ) VALUES (Cells(i,1), Cells(i,2), Cells(i,3), Cells(i,4)); Next i

maxpower-zero
質問者

補足

早速のご回答ありがとうございます。 エクセルに早速打ち込んでみたいのですが どうやって実行すればよいのでしょうか? またテキストファイルに出力する場合は どのように行えばよいのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A