• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:クエリ抽出条件の設定)

クエリ抽出条件の設定方法とエクセルテンプレートへのデータ出力方法

このQ&Aのポイント
  • クエリ抽出条件の設定方法について、簡単に説明します。現在のシステムでは、各地域の名簿を管理しています。フォームの各地域ボタンを押すと、その地域の名簿を抽出条件として設定し、表示することができます。しかし、エクセルに出力する際に、テンプレートにデータを出力する方法が不明です。
  • クエリ抽出条件を設定する方法ですが、ボタンを押すだけで設定できるようにするには、いくつかの方法があります。1つは、フォームのボタンでクエリを生成し、ApplyFilterを使用して抽出する方法です。別の方法としては、VBAを使用してクエリを作成し、適用する方法もあります。
  • エクセルテンプレートへのデータ出力方法については、現在のシステムではエクセルテンプレートに直接データを出力することができません。しかし、クエリの抽出条件を利用して、テンプレートにデータを出力する方法があります。その際には、VBAを使用してクエリの抽出結果を取得し、テンプレートにデータを書き込むことができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

ご質問の内容とは異なり、従来法の延長ですが、フォームに出力用のボタンを設けて、下記の様な方法で如何でしょうか。 Private Sub コマンドxx_Click() Dim objXl As Object Dim tempWbk As Object, newWbk As Object Const xlPasteValues = -4163 'フォームのフィルターのかかったデータをテンポラリファイルにエクスポート DoCmd.OutputTo acOutputForm, Me.Name, acFormatXLSX, CurrentProject.Path & "\temp.xlsx" Set objXl = CreateObject("Excel.Application") 'テンプレートを元に新規ブックを作成 Set newWbk = objXl.workbooks.Add(CurrentProject.Path & "\template.xltx") 'テンポラリファイルを開く Set tempWbk = objXl.workbooks.Open(CurrentProject.Path & "\temp.xlsx") 'ここはご自分でお好きな様に作り込んで、テンポラリファイル→新規ブックにデータ転送して下さい。 tempWbk.worksheets(1).range("A1").currentregion.copy newWbk.worksheets(1).range("A1").pastespecial Paste:=xlPasteValues '新規ブックを保存 newWbk.SaveAs CurrentProject.Path & "\newData.xlsx" '後始末 newWbk.Close tempWbk.Close objXl.Quit Set objXl = Nothing End Sub

参考URL:
http://www.ken3.org/cgi-bin/group/vba_access_excel.asp
CLOWN-6-
質問者

お礼

一旦出力したものをテンプレに移し替えるんですね。 そこまで思いいたっていませんでした。 コードを真似て適用したら上手く動作してくれました。 ほんとうにありがとうございます。

関連するQ&A

専門家に質問してみよう