<Access クエリーを Excel既存シートへ エクスポート>
こんにちは、 三流プログラマーKen3です。 今回は、 Access クエリーを Excel既存シートへ エクスポート を軽く書きたいと思います。 /* * 1.今回のキッカケ */ BBS に以下の投稿がありました。 ( http://www.ken3.org/cgi-bin/bbs/vba/wforum.cgi?mode=allread&no=66&page=0 ) >投稿時間:2003/03/18(Tue) 09:11 > >おなまえ:TMNOA >タイトル:アクセスからエクセルへ > >始めまして、TMNOAです。 >いつも読ませて頂いております。 > >質問なのですが、アクセスのクエリーからエクセルへのエクスポートの際、 >概存ブック及び概存シートへのエクスポートは可能なのでしょうか? >現在の所、概存ブックの新規シートへのエクスポートはできるのですが・・・。 > >お忙しいとは思いますが、よろしくお願い致します。 >(他のサイトは説明が難しく困っているので・・・。) > >では、失礼します。 -------------------------------------------------------- と質問メールが来ました。 私の説明もわかりにくいと評判なんだけど、、、少し調べてみますか。 /* * 2.簡単にできないか、確認してみる。 */ 昔の自分のメルマガサンプルを見てみると、 <Access97からExcel形式へExport時に書式設定を行いたい> http://www.ken3.org/backno/hosoku/e025/index.html で、 DoCmd.TransferSpreadsheet acExport, 5, "管理MST", "C:\TEST.XLS", True, "" <書式付きエクスポート DoCmd.OutputToで、できます> http://www.ken3.org/backno/hosoku/ETC_026.html で、 DoCmd.OutputTo acOutputTable, "T_管理MST", acFormatXLS, "C:\TEST.xls", True を使ってました。 簡単なのは、DoCmd.XXXXが使えるといいんだけどなぁ、 クエリーの出力を試してみました。(Access97) spreadsheettype を8 Excel97に変えてと 0 acSpreadsheetTypeExcel3 (既定値) 6 acSpreadsheetTypeExcel4 5 acSpreadsheetTypeExcel5 5 acSpreadsheetTypeExcel7 8 acSpreadsheetTypeExcel97
Sub コマンド0_Click()
DoCmd.TransferSpreadsheet acExport, 8, "Q_VBADATA", "D:\058.XLS", True, ""
MsgBox "出力終了"
End Sub |
さてと、行挿入・列挿入してタイトルとか入れときますか。
ついでにデータ消してみてと。見出しに色付けて。
シートも挿入してしまえ。。。とブックの形を変えて保存します。
ブックを閉じたことを確認後、再度ボタンを押して実行します。
ブックを開いてみるとあら不思議、
データが入っているよ。
DoCmd.TransferSpreadsheet
を使うと出きるみたいですね。
/*
* 3.データエリアの名前付けを利用しているのでは?と勝手に予想するが、、、
*/
勝手に一人で盛り上がってないで、
何でか?理由を説明しろ?(想像しろって?)
データの転送先のセルに付けた名前をみると、
Q_VBADATAってのができてます。
えっ、どこどこ?
メニューの挿入・名前・定義を選択します。
そうすると、範囲が書いてあります。
既存のブックで範囲が設定されていれば、そこに保存するみたいです。
とすると、今在るブックにデータを挿入したかったら、
あたらしくクエリー名と同じ名前の定義を追加すればいいの?
Q_ASPDATAって名前で範囲を追加してみます。
メニューの挿入・名前・定義を選択します。
名前と範囲を入れて追加ボタンを押します。
で保存してと。
Sub コマンド1_Click()
DoCmd.TransferSpreadsheet acExport, 8, "Q_ASPDATA", "D:\058.XLS", True, ""
MsgBox "出力終了"
End Sub |
それじゃダメなのかなぁ、、
シートを消して、再実行。
すると、ブック内にQ_ASPDATAのシートが作成された。
同様にタイトルなどの飾りを付けて、
確認用にデータを少し消してから保存。
再度実行する。
あらら、ダメかぁ。
名前の定義でそこにセットされるなら、
既存シートのセットも簡単かなぁと思ったのですが、あと一歩です。
1つのブックに一つのクエリーはエラー無く名前の範囲に出力されるので、
一度ダミーでシート作成、その後タイトルやワクを作成して使ってみてください。
*複数クエリーを既存シートは工夫が必要みたいです。
(もしかしたら私の操作ミスかも)
一度シート作成後、他のシートをシートのコピーで持ってくるとか。
/*
* 4.おわりの挨拶
*/
今回も途中までは出来たのになぁ、、、、
何か単純なミスがありそうだけど。
拾い読みして、
1つでも何かの参考となれば幸いです。
Excel/Access大好き、三流プログラマーKen3でした。
----------------------------------
関連項目(ただのバックナンバー紹介)
----------------------------------
昔のサンプル、
<Access97からExcel形式へExport時に書式設定を行いたい>
http://www.ken3.org/backno/hosoku/e025/index.html
時間があったら、あわせてみて下さい。
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
|
気になったジャンル↓を選択してください。 人気記事(来場者が多いTOP3): Excel関係: Access関係: その他:VBAの共通関数やテキストファイルの操作など 開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う] 仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力] ※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。 |
Blogとリンク:[三流君の作業日記]/
[VBAやASPのサンプルコード]/
広告-[通販人気商品の足跡]