AccessVBA

VBAでテーブルやクエリのレコードをエクセルに入力

投稿日:


動画で楽にパソコンが身につく方法はこちら>>

VBAでテーブルやクエリのレコードをエクセルに入力する手順は以下の通りです。

1 エクセルオブジェクトを生成する。

2 ADOまたはDAOなどでレコードにアクセスする。

3 1レコードごとエクセルに入力する。

4 エクセルを保存し、オブジェクトを終了、開放する。

以下はVBAでテーブルやクエリのレコードをエクセルに入力する一例です。

Dim oApp As Object
Set oApp = CreateObject(“Excel.Application”)
Dim xlRange As Excel.Range
Dim objBook ‘ExcelBook
Dim objSheet

エクセルオブジェクトを宣言し、生成する。

‘指定のエクセルファイルを開く
oApp.Workbooks.Open filename:=pas & filename

Set objBook = oApp.ActiveWorkbook

‘エクセルファイルへデータセットする
oApp.Sheets(“日計表”).Select
Set objSheet = objBook.Sheets(1)
シート「日計表」を選択する。

oApp.Cells.Clear
シートの中身をクリアする。

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strTbl As String

Dim cnq As New ADODB.Connection
Dim rsq As New ADODB.Recordset
Dim comq As New ADODB.Command

Set cnq = CurrentProject.Connection
comq.ActiveConnection = cnq
comq.CommandText = “Q_日計”
Set rsq = comq.Execute

Q_日計クエリにアクセスする。

最終レコードまで繰り返す。
Do Until rsq.EOF

oApp.Range(“A” & Format(i)).Value = rsq!業者名1
oApp.Range(“B” & Format(i)).Value = rsq!発注材料名1
oApp.Range(“C” & Format(i)).Value = rsq!単位1
oApp.Range(“D” & Format(i)).Value = rsq!単価1

レコードの値をセルに入力する。

Loop

Set comq = Nothing
rsq.Close: Set rsq = Nothing
cnq.Close: Set cnq = Nothing

クエリへの接続を終了する。

Set xlRange = Nothing
oApp.Workbooks(1).Close SaveChanges:=True
エクセルを保存する。

oApp.Quit
Set oApp = Nothing

エクセルオブジェクトを終了、開放する。


動画で楽にパソコンが身につく方法はこちら>>

-AccessVBA

Copyright© エクセルVBA使い方入門 , 2023 All Rights Reserved Powered by STINGER.