ACCESSのVBAを使ってテーブルのデータを
既存ブックに出力し、別名で保存をしたいのですが、
どうも、処理が遅くて困っています。
改善点がありましたら教えてくださいお願いいたします。
Dim objExcel As Excel.Application
Dim xlWrkbk As Excel.Workbook
Dim xlWrksh As Excel.Worksheet
Dim rs As DAO.Recordset
Dim strFilename As String
strFilename = CurrentProject.Path & "既存ブック名.XLS"
Set objExcel = New Excel.Application
Set xlWrkbk = objExcel.Workbooks.Open(Filename:=strFilename, ReadOnly:=True)
Set xlWrksh = xlWrkbk.Worksheets("シート名")
Set rs = CurrentDb.OpenRecordset("テーブル名", dbOpenSnapshot)
With objExcel
xlWrksh.Range("A:N").Clear
xlWrksh.Range("A2").CopyFromRecordset rs
xlWrkbk.SaveAs Filename:=CurrentProject.Path & "新しいブック名.xls"
xlWrkbk.Close
.Quit
rs.Close
End With
Set rs = Nothing
Set objExcel = Nothing
Set xlWrkbk = Nothing
Set xlWrksh = Nothing
No.1ベストアンサー
- 回答日時:
内容吟味しないで申し訳ないですけど、既成のマクロでスプレッドシートにエクスポートするマクロが
あるので、それをつかったらどうでしょうか。
多分、レコードを1つづつ呼び出して書き込むよりかは早いかと。
ヘルプを見たところVBAでは、
docmd.TransferSpreadsheet(TransferType, SpreadsheetType, TableName, FileName, HasFieldNames, Range, UseOA)
を使うようです。
使い方の詳細は、ヘルプから参照して速さを比較してください。
この回答への補足
TransferSpreadsheet だと、
確かに指定シートに出力はできますが別名保存はできませんよね?
Excelの元データに出力して別名保存したいのですが・・・。
一応上記のコードだと、理想通りの処理が行われているのですが、
CopyFromRecordset の部分でかなり処理に時間がかかっています。
スプレッドシートというのは始めて聞きました、
ちょっと調べてみます
ありがとうございます。
すみません、上記コードのセル消去部分とTransferSpreadsheetを
組み合わせて、かなり時間短縮することができました!
ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
フォントについて教えてください!
みなさんの一番好きなフォントは何ですか? よく使うフォントやこのフォント好きだなあというものをぜひ教えてください!
-
【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
【お題】 ・ありそうだけど、絶対に無いことわざを教えてください。
-
集合写真、どこに映る?
あなたが集合写真を撮られるとき、画角のどのあたりにいることが多いですか? 私は振り返ってみると右の端にいることが多い気がします。
-
【選手権お題その2】この漫画の2コマ目を考えてください
サッカーのワンシーンを切り取った1コマ目。果たして2コマ目にはどんな展開になるのか教えてください。
-
ACCESSからEXCELに出力する際、時間がかかる。
その他(プログラミング・Web制作)
-
MS-Accessのエクスポートで異常に時間がかかるようになった
その他(データベース)
-
ACCESSのVBAにてExcelのシートをコピーしたい
その他(データベース)
-
-
4
アクセスからエクセルのシートを追加して、名前をつける方法
Excel(エクセル)
-
5
AccessのDAOでフィールド名を配列に格納して・・・
Visual Basic(VBA)
-
6
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
7
アクセスvbaでエクセルブックを保存
その他(Microsoft Office)
-
8
ACCESSVBA からExcelの他ブックへコピーの方法
Visual Basic(VBA)
-
9
Accessにインポートしたら並び順が変わっちゃった
Access(アクセス)
-
10
新規レコード行を非表示にしたい
Access(アクセス)
-
11
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
12
Acccessで2つのテーブルから1つのフォームをつくりたい
Access(アクセス)
-
13
Accessの桁区切りについて教えてください。
Access(アクセス)
-
14
ACCESS側からEXCELの書式を設定するには?
Visual Basic(VBA)
-
15
【Access】クエリで抽出したデータをCSV形式でエクスポートできますか?
Access(アクセス)
-
16
ACCESSでクエリを作成したら「式が複雑すぎます。」の表記が…
その他(データベース)
-
17
Access サブフォームでの選択行の取得
その他(データベース)
-
18
ACCESS 一番最新の日付の金額を出したいのですが・・
その他(データベース)
-
19
accessへエクセルの複数のシートのインポートの仕方
Access(アクセス)
-
20
accessの処理が遅い
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別ブックをダイアログボックス...
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
vbaでvbaProjectのパスワード解...
-
VBAで複数のブックを開かずに処...
-
【ExcelVBA】インデックスが有...
-
VBA コードを実行すると画面が...
-
ワイルドカード「*」を使うとう...
-
Excelマクロ 該当する値の行番...
-
【Excel VBA】書き込み先ブック...
-
エクセルVBAで書式と値の貼付け...
-
VBA 二つのブックをうまく扱え...
-
VBA 実行時エラー 2147024893
-
マクロのBeforeCloseイベントに...
-
教えて下さい!VBAで複数Excel...
-
VBAで別ブックのシートを指定し...
-
[Excel]ADODBでNull変換されて...
-
Excelブックがアクティブになっ...
-
エクセルVBAでテキストボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
ワイルドカード「*」を使うとう...
-
VBA コードを実行すると画面が...
-
【ExcelVBA】zip圧縮されたCSV...
-
【ExcelVBA】インデックスが有...
-
VBAで別ブックのシートを指定し...
-
VBAで別のブックにシートをコピ...
-
【Excel VBA】書き込み先ブック...
-
Excelマクロ 該当する値の行番...
-
VBAで複数のブックを開かずに処...
-
[Excel]ADODBでNull変換されて...
-
VBA シート名が一致した場合の...
-
VBA 実行時エラー 2147024893
-
VBSでExcelのオープン確認
-
ACCESSVBA からExcelの他ブック...
-
Excel2007VBAファイルの表示に...
-
フォルダ内の全てのファイルに...
おすすめ情報