VBA

DoCmd.TransferSpreadsheet でインポートする Excel のシート名を指定したい

最終更新日:2014/9/18

Microsoft Office Access の VBA では、次のようなコードを書くことにより、Excel ファイルからデータをインポートすることができます。

DoCmd.TransferSpreadsheet acImport, , "TableName","C:\Users\AT950\Desktop\sample.xls"

インポートする Excel ファイルに複数のシートがある場合、このコードでインポートされるのはいちばん左にあるシートです。

インポートされるのはいちばん左にあるシート

ヘルプを見ると、このファイルパスの2つ後ろの引数で「ワークシートのセルの範囲または範囲の名前」を指定できるとあります。

http://msdn.microsoft.com/ja-jp/library/office/ より転載
Access 2013 デスクトップ データベース リファレンス

この例の最後の引数として "A1:G12" を与えているので、セルの範囲が指定できるのはわかりますが、セルの範囲ではなくシートを指定したい場合は、次のようにシート名の後ろにビックリマークをつけた引数を渡します。

DoCmd.TransferSpreadsheet acImport, , "TableName","C:\Users\AT950\Desktop\sample.xls",,"Sheet2!"