Excelは全能にして絶対。
事務作業からプログラムまで、どんな層にでも広く活用されているのが全能伸Excel様なのだ。
先日、個別に管理されたファイルを結合しているとかいう崇高な仕事をしている人がいたので、
データベースに連携させるように提案したのですが、実際にやったことなかったのでやってみました。
ということで、今回はExcelをつかってAWSのAurora(MySQL)接続をやってみます。
#Auroraを立てる
Auroraを立てていきましょう。
ポイントは2点。
①セキュリティグループでポートを開ける(3306)
②パブリックアクセス可能にチェックを入れる。
Aurora構築時にデータベースも作成しておきましょう。
ここでは「mydb」という名前でデータベースを立てることにします。
これでAuroraの環境が整いました。
#MySQLドライバをインストール
以下のサイトからODBCドライバ(MySQL Connectors)をWindowsPCにインストールしましょう。
#VBAを書く
テーブルを作成して、サンプルデータをインサートして、結果をSELECTするサンプルコードです。
Sub main()
Dim adoCon As Object ' ADOコネクション
Dim adoRs As Object ' ADOレコードセット
Dim CreateTableSQL As String ' SQL
Dim InsertSQL As String ' SQL
Dim SelectSQL As String ' SQL
CreateTableSQL = "create table tmp_tbl(id int,name nvarchar(255))"
SelectSQL = "select * from tmp_tbl"
' ADOコネクションを作成
Set adoCon = CreateObject("ADODB.Connection")
' ODBC接続
adoCon.Open _
"DRIVER={MySQL ODBC 8.0 Unicode Driver};" & _
" SERVER=****aurora-instance-1.cfu9dcigfnzc.ap-northeast-1.rds.amazonaws.com;" & _
" DATABASE=mydb;" & _
" UID=admin;" & _
" PWD=*****;"
'CreateTable 既にテーブルあればエラーを無視
On Error Resume Next
adoCon.Execute (CreateTableSQL)
On Error GoTo 0
'サンプルデータをインサート
For i = 1 To 10
int_rnd = Round(Rnd * 10000, 0)
InsertSQL = "insert into tmp_tbl(id,name) values(" & int_rnd & " ,'apple_" & int_rnd & "')"
adoCon.Execute (InsertSQL)
Next
' SELECTの実行
Set adoRs = adoCon.Execute(SelectSQL)
Do Until adoRs.EOF
Debug.Print adoRs.Fields(0) & ":" & adoRs.Fields(1)
adoRs.MoveNext
Loop
End Sub
#注意事項
データベースをインターネットにさらすことになるので、
セキュリティグループなどで適切にアクセスは制御します。
もし商用で行う場合はVPN-Gatewayを使うなどが安全です。
それではご査収ください~(^-^)