Groovyでテーブルのデータを取得したい(1)

以前の日記で、Groovyがどうのこうの言っていた気がするのですが、最近忙しくて日記の更新もままならない状態です。
私の普段の作業で定型化できるような作業のうち、そのほとんどがExcelVBAのお世話になっているのですが、
どうせなら気になっているGroovyでどこまでできるのか試してみたくなりました。勉強にもなるし。
手始めにテーブルのデータを取得するようなVBAをGroovyで書いたらどんな風になるのか試してみることに。


今日は、変換元になるVBAを記載しておきます。

Public Sub getTableData()

    Dim objDB As New ADODB.Connection
    Dim objRS As ADODB.Recordset
    Dim strSQL As String
    
    Dim bizTableCollection As Collection
    Dim table_name As Variant
    
    objDB.Open "dsn=myDSN; uid=userid; pwd=password"
    'カウント数を取りたいのでクライアントサイドカーソールに変更
    objDB.CursorLocation = adUseClient
    Set objRS = objDB.Execute("SELECT table_name FROM user_tables WHERE table_name LIKE 'BIZ_AB_%';")
    
    Set bizTableCollection = New Collection
    Do Until objRS.EOF
        bizTableCollection.Add (objRS(0))
        objRS.MoveNext
    Loop

    For Each table_name In bizTableCollection
        
        sSql = "SELECT * FROM " & table_name & " WHERE CREATE_USER_CD = '" & ActiveWorkbook.Worksheets("Main").Cells(7, 2) & "'"
        'SQLの実行
        Set objRS = objDB.Execute(sSql)
        
        If objRS.RecordCount > 0 Then
           'ワークシートの準備
            make_worksheet (table_name)
            rownum = 2

           '列名を出力する
            For colnum = 1 To objRS.Fields.Count
                ActiveWorkbook.Worksheets(table_name).Cells(1, colnum) = objRS(colnum).name
            Next
            'データを出力する
            Do Until objRS.EOF
                For colnum = 1 To objRS.Fields.Count
                    ActiveWorkbook.Worksheets(table_name).Cells(rownum, colnum) = objRS(colnum).Value
                Next
                objRS.MoveNext
                rownum = rownum + 1
            Loop
        End If
    Next

    If Err.Number <> 0 Then
        MsgBox Err.Description
    End If

    'ADOをクローズします
    objDB.Close

    'オブジェクトの破棄
    Set objDB = Nothing

    MsgBox "終了しました。"

End Sub

Private Sub make_worksheet(name As String)

    '探してあれば削除
    For Each sh In ActiveWorkbook.Worksheets
        If sh.name = name Then
            Application.DisplayAlerts = False
            sh.Delete
            Application.DisplayAlerts = True
        End If
    Next
    '新しいワークシートの作成
    ActiveWorkbook.Worksheets("Template").Visible = xlSheetVisible
    ActiveWorkbook.Worksheets("Template").Select
    ActiveWorkbook.Worksheets("Template").Copy After:=Sheets(Sheets.Count)
    Set NewSheet = ActiveWorkbook.Worksheets("Template (2)")
    NewSheet.Select
    NewSheet.name = name
    
    ActiveWorkbook.Worksheets("Template").Visible = xlSheetHidden

End Sub


ADODBを使用していますが、いつも忘れる参照設定も載せておきます。



これからGroovyで実装してみるのですが、ExcelVBAがかなり良くできているので
今回のケースだと優位点がでないかなと思います。