ACCESS VBAでExcelへのデータエクスポート:在庫計算データを正確に貼り付ける方法
ACCESS VBAでExcelへのデータエクスポート:在庫計算データを正確に貼り付ける方法
この記事では、ACCESS VBAを用いてExcelファイルに在庫計算データをエクスポートする方法について解説します。具体的には、フォームにボタンを作成し、クリックすることでクエリで抽出されたデータを、指定したExcelファイルのシートとセルに貼り付ける方法を、具体的なコード例と修正ポイントを交えながらご説明します。Excelファイルへのデータ書き込み、VBAプログラミング、Accessデータベース操作といったキーワードに関連する知識が得られます。
問題点の分析と修正
ご提示いただいたコードにはいくつか問題点があります。まず、`OpenDatabase`関数のファイルパスが間違っている可能性があります。「C:******Desktop平成24年度,aaa.xlsx」の部分は、実際のファイルパスに修正する必要があります。ファイル名は「平成24年度,aaa.xlsx」とカンマが含まれているため、ファイルパス全体をダブルクォーテーションで囲む必要があります。また、`.xls`と`.xlsx`の拡張子の違いにも注意が必要です。Access 2010以降では、Excel 2007以降のファイル形式である`.xlsx`を使用する必要があります。
さらに、`objExcel.Cells(A,5).CopyFromRecordset rst`の部分も問題があります。`A`は変数として認識されず、エラーとなります。セル番号を指定するには、数値を直接入力する必要があります。例えば、A5セルに貼り付ける場合は`objExcel.Cells(5, 1).CopyFromRecordset rst`と記述します。
最後に、`コマンド7_Click`サブルーチンで`Call [“在庫計算”]`とありますが、これは正しくありません。「在庫計算」という名前の別のサブルーチンを呼び出そうとしているようですが、そのサブルーチンが定義されていないか、名前が間違っている可能性があります。この行は削除するか、適切なサブルーチンを呼び出すように修正する必要があります。
修正後のコード
以下は修正後のコードです。ファイルパスはご自身の環境に合わせて修正してください。また、エラー処理を追加することで、より堅牢なコードになっています。
Private Sub コマンド7_Click()
Call ExportExcel
End SubPrivate Sub ExportExcel()
Dim DB As Database
Dim rst As DAO.Recordset
Dim objExcel As Object
Dim strFilePath As String
Dim strFileName As String
On Error GoTo ErrHandler' ファイルパスとファイル名を指定
strFilePath = "C:Users" & Environ(""UserName"") & ""Desktop"" ' デスクトップパスを取得
最近のコラム
>> 30代女性個人事業主のためのAMEXプラチナカード活用術:メディカルコンサルテーションサービス徹底解説