himorogiの日記

主にプログラミングに関することなど。少々ハード(電子工作)についても。

ワークシート変換

こちらも第一引数を、"import"|"export"|"link" で指定できるようにした。
DoCmd.TransferSpreadsheet にはテーブルの見出しを使うか使わないかという指定や、レンジの指定もできるけど、そこまで細かい指定に対応するよりは、MS Access とやりとりする必要があるワークシートはテーブル形式に整えろ!という内部ルールを徹底させるほうが、マクロを簡単に作れる環境を整備しようというこれらユーザー関数提供の目的に適う。

Function doCmdTransferSS(mode As String, fPath As String, tName As String)
    Dim myDic As Object
    Set myDic = CreateObject("Scripting.Dictionary")
    myDic.Add "import", acImport
    myDic.Add "export", acExport
    myDic.Add "link", acLink
    
    On Error GoTo ErrorHandle
    'Debug.Print "passed:doCmdTransferSS:" & mode; ""
    
    DoCmd.TransferSpreadsheet myDic.Item(mode), _
                                acSpreadsheetTypeExcel9, _
                                tName, _
                                fPath, _
                                True ', useRange
    doCmdTransferSS = True
GoOut:
    Exit Function
ErrorHandle:
    MsgBox Err.Number & vbCrLf & Err.Source & vbCrLf & Err.Description
    doCmdTransferSS = False
    GoTo GoOut
End Function