お世話になります。
VBAより抽出結果をExcelへ出力したいと思います。
とりあえず、抽出結果をExcelの特定の箇所へ出力することは
出来たのですが、今回は見出し(フィールド名)もあわせて出力
したいところです。
見出しの部分を出力するにはどうすればよいのでしょうか。
恐らく見出し部分と抽出結果部分はそれぞれ別々に出力
しなければならないとは思うのですが。。
なお、見出し部分は固定の文字列ではないため、毎回フィールド名を
取得し、それを見出しとして出力する必要があります。
抽出結果(集計クエリ)は、
項目 yyyy年mm月 ・・・・ yyyy年mm月
数量A 500 ・・・・ 1200
数量B 200 ・・・・ 800
というような感じで、現在は
数量A 500 ・・・・ 1200
数量B 200 ・・・・ 800
の部分だけ出力できている状況です。
Dim obj As Object
Dim MyDB As DAO.Database
Dim MyRs As DAO.Recordset
MySQL = SQL文(集計クエリ)
Set MyRs = MyDB.OpenRecordset(MySQL)
obj.Worksheets(シート名).Select
obj.Application.Cells(23, 1).CopyFormRecordset MyRs
上記でExcelへ出力してます。
ご教授の程、宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
以下 ★ 部分を追加してみてどうなりますか
Set MyRs = MyDB.OpenRecordset(MySQL)
obj.Worksheets(シート名).Select
For i = 0 To MyRs.Fields.Count - 1 ' ★
obj.Application.Cells(22, i + 1) = MyRs(i).Name ' ★
Next ' ★
obj.Application.Cells(23, 1).CopyFormRecordset MyRs
※ これ動いていました?
CopyFormRecordset のスペルは CopyFromRecordset なのでは?
(そのままにしておきますけど)
GetObject した環境ですけど
> obj.Worksheets(シート名).Select
これ、オートメーションエラーになりませんでした?
(Vista+2007 の環境ですけど)
エラーになっていなければそれはそれで・・・
obj.Worksheets(シート名).Activate
はエラーなく動くようですが・・・
※ obj.Application.Cells(23, 1) の部分は、
わざわざ obj.Application でトップに行かなくても?
Application.Cells 記述では、
アクティブブック・アクティブシートが隠れているだけで・・・
obj の正体はブックでしょうか?
(以下の様にトップに行かずに obj から辿った方が良さそうに思いますけど)
Set MyRs = MyDB.OpenRecordset(MySQL)
With obj.Worksheets(シート名)
.Activate
For i = 0 To MyRs.Fields.Count - 1 ' ★
.Cells(22, i + 1) = MyRs(i).Name ' ★
Next ' ★
.Cells(23, 1).CopyFormRecordset MyRs
End With
ご回答ありがとうございます。
>CopyFormRecordset のスペルは CopyFromRecordset なのでは?
記載ミスです。すみません。
色々調べてみて、理解しない状態でツギハギしながら作成しました。。
なので、おかしな部分が多々あるかと思います。
とりあえず現状はエラーは出ておりませんが、追々精査したいと
思います。ご指摘ありがとうございました。
見出しについてですが、こちらに質問を投稿しつつ自力でしらべて
出力できるようになりました(30246kikuさまの方法とほぼ同じ)。
ありがとうございました。
No.1
- 回答日時:
クエリのフィールド名を取り出し、それを指定の
位置から順に貼り付けていくという手順になるかと。
たとえば、A1から貼り付ける場合は、
For I = 0 to MyRs.Fields.Count - 1
obj.sheets(i+1,1) = MyRs.Fields(i).Name
Next i
のような感じ。
obj.Worksheets(シート名).Select
のあとに。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
cout と cerrの違い
-
アクセスでエクセルに出力する...
-
MMDでavi出力が出来ない
-
COBOLのMOVEで桁数が異なる場合
-
MidとMid$の使い分け
-
プログラムについての質問です...
-
ACCESSからExcelへエクスポート...
-
coutで出力した文字を消去する...
-
標準出力の上書き
-
ListViewの複数選択について
-
C# 標準出力のencodingをutf8に...
-
PHPでローカルプリンタを使用す...
-
wsprintfで浮動小数を扱うには?
-
javacoreの見方について
-
Fortran90/95の出力方法について
-
【UWSC】WEBページ中の特定文字...
-
Fortranのformat形式
-
コンセントの電力は入力と出力...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
MMDでavi出力が出来ない
-
プログラムについての質問です...
-
COBOLのMOVEで桁数が異なる場合
-
cout と cerrの違い
-
コンセントの電力は入力と出力...
-
スマホのバッテリー消費につい...
-
アクセスでエクセルに出力する...
-
PC電源は、出力DC12VとDC5Ⅴで...
-
Windows Formアプリからコンソ...
-
ACCESS クエリ→フォーム...
-
VBAのExecメソッドで画面を非表...
-
printfの書式%.*s
-
無線とかアンテナに関しの質問...
-
【ExcelVBA】最終行の取得で困...
-
ACCESSからExcelへエクスポート...
-
Accessのテーブルからcsv出力す...
-
CRC16計算について
-
Excel VBAで値を変えながら、pd...
おすすめ情報