5. 2、VBAでSQLを実行し、.csvに出力する 工事中
SQLを実行
'' SQL分を実行する汎用的なサブルーチン ' SQL文を収得
Sub SQL(source, catalog, sql_sheet, y0, x0, y1, x1,
data_sheet, py, px, rfg) strSQL = " "
' source 実行するSQLのデータベース名(trsk01など) ' セルに入っている文字列をstrSQLに追加していく
' catalog 実行するSQLのcatalog名(spxqなど) For y = y0 To y1 'y0行からy1行まで見に行く
' sql_sheet SQL文が書いてあるシート For x = x0 To x1 'x0列からx1列まで見に行く
' y0,x0 sql_sheetのsql文を読み出す初めのセルの位置 strSQL = strSQL & Sheets(sql_sheet).Cells(y, x).Value
' y1,x1 sql_sheetのsql文を読み出す最後のセルの位置 'strSQLに追加
' data_sheet 結果を貼り付けるシート Next x
' py, px シートのどのセルに貼り付けるかを指定 strSQL = strSQL & " " ' 次の行に行くときは空白を入れておく
' rfg 列名を表示するかどうか Next y
' SQLに接続するために必要な変数を定義 ' SQL文を実行
Dim cn As New ADODB.Connection cmd.ActiveConnection = cn
Dim rs As New ADODB.Recordset cmd.CommandText = strSQL
Dim cmd As New ADODB.Command cmd.CommandTimeout = 600
Dim strSQL As String Set rs = cmd.Execute
' 接続を確立する
cn.Open "Provider=SQLOLEDB; Data Source=" &
source & "; Initial Catalog=" & catalog & "; Integrated
Security=SSPI;“
5
6. 工事中
' 実行結果を貼り付け
If rfg Then
' rfgがtrueなら列名も表示
For i = 1 To rs.Fields.Count
Sheets(data_sheet).Cells(py, i - 1 + px).Value =
rs.Fields(i - 1).Name
Next
Sheets(data_sheet).Cells(py + 1,
px).CopyFromRecordset rs
Else
' rfgがfalseなら列名は表示しない
Sheets(data_sheet).Cells(py, px).CopyFromRecordset
rs
End If
' 接続をクローズする
cn.Close
Set cn = Nothing
Set rs = Nothing
End Sub
6
10. Excel上にあるデータをSQLへ溜め込む
Sub wr() '書き込み
For y = 2 To 5000
Dim cn As New ADODB.Connection If Cells(y, 1).Value <> "" Then
Dim rs As New ADODB.Recordset
Dim cmd As New ADODB.Command rss.AddNew
Sheets("作業").Select rss![Security ID] = Cells(y, 1).Value
rss![QUANTITY] = Cells(y, 2).Value
' 接続を確立する rss![Date] = Cells(y, 3).Value
cn.Open “Provider=SQLOLEDB; Data Source= rss![PID] = Cells(y, 4).Value
(サーバ名); Initial Catalog=(カテゴリー名) rss![Classifications] = Cells(y, 5).Value
;User ID=(ユーザID);Password=(パスワード);"
cmd.ActiveConnection = cn rss.Update
End If
Set rss = New ADODB.Recordset Next
rss.source = "Bloomberg_position"
rss.CursorType = adOpenDynamic
rss.LockType = adLockOptimistic '' クローズ
rss.ActiveConnection = cn cn.Close
rss.Open
Set cn = Nothing
Set rs = Nothing
'
End Sub
10
11. 5、条件にあったメールの添付ファイルを自動的に特定フォルダに保存
http://okwave.jp/qa/q3152899.html
Sub Sample(メール As MailItem)
保存先フォルダのパス = "C:¥Documents and Settings¥UserName¥My Documents¥保存フォルダ¥"
For Each 添付ファイル In メール.Attachments
添付ファイル.SaveAsFile (保存先フォルダのパス & 添付ファイル.DisplayName)
Next 添付ファイル
End Sub
これをoutlookのマクロに書く
11