No.3ベストアンサー
- 回答日時:
400ファイル出力時に
エクセルを自動起動していますか?
(しないことをおすすめします)
していないのにダメな場合は
まとめたものを1ファイルとして
出力したものを使うのが良いのでは
ないでしょうか。
ファイル出力というのは
そうです、EXCELです。
一つひとつを画面で開くと
重いのではないでしょうか。
開いてますか、基になる各ブックを。
(画面上に表示されないような処理
をおすすめします)
もし面倒でなければ少し詳しく
処理、画面の流れを説明してください。
この回答への補足
本当にていねい説明していただいてありがとうございます。
長くなりそうですが、もう1回最初から説明します。
Excelの画面は起動していません。
Acessテーブルとして社員マスタがあります。それと部署マスタ。
(社員マスタの内容は、番号、氏名、所属、役職、職種、身分・・)
社員1人1ブックでEXCELデータを作成しますが、その際にテンプレートとなるブックを、役職・職種で判断し選択しています。(これは別関数)
更に作成したブックは部署ごとにフォルダを自動作成してそこに保存しています。(これも別関数)
PGとしては本当に単純な構造ですが
・SQL文で社員マスタから対象社員をセレクト(レコードセット作成)
・Excelオブジェクト作成(Set exce = = CreateObject("Excel.application"))
・レコードセットの社員コードでループ
社員マスタの役職・職種から対象テンプレートを選択
そのブックを開く
値をセットする
保存先のフォルダ名取得
別名で保存
そのブックをクローズ(false)
そのシートオブジェクトを開放
ブックオブジェクト変数開放
・ループ抜け
Excel終了(オブジェクト.Quit)
Excelのオブジェクト変数開放
処理終了
以上です。今までいただいたアドバイスをもとに、じっくりもう一度やってみようと思います
No.2
- 回答日時:
2.セットすべきデータをファイル出力についてですが
処理の内容が分からないので推測ですが
個別に400ファイル出力しても
400人分を1ファイルとして出力しても
可能だと思います。
個別ブックと個々のデータをつなぐ
情報があれば。
あとはExcel/VBAで処理するということです。
画面の見た目では
アクセスを動かして
自動でエクセルが処理して
アクセスに戻ってくるイメージ
なのでご希望に近いものではないかと思います。
この回答への補足
>個別に400ファイル出力しても
この部分でコケてしまってます。(メモリ不足)
・・というよファイル出力というのはEXCELに、と考えていいんでしょうか?
いわゆる社員マスタの内容を1人1ブックで出力していますが
社員の役職や職務内容に応じてPGで基となるブックを切り替えたり
しています。
No.1
- 回答日時:
根本的な解決になっていませんが
エクセルの起動をせず、ファイルの出力だけ
まとめて行ってしまってから
エクセルで処理をするというのではだめでしょうか。
個々のブック用のデータをそれぞれ一括で作成してしまい、
あらためてエクセルで処理する。
処理のイメージ
1.アクセスのフォームで区分を入力
2.セットすべきデータをファイル出力
(一時保管用。エクセル自動起動はしない)
3.400人終了したらマクロを持った
エクセルファイルを起動
(アクセスから=エクセル自動起動する)
4.エクセルファイルはファイルを
開いた時に自動開始するマクロを持っている。
2で出力したファイルと個々のブックを
照合しながら内容をセット、別名保存を
400ファイル、自動で繰り返して
終了したら、エクセルを自動終了
5.アクセスに戻る。
というのはどうですか。
不明、不足は質問ください。
他には、エクセルが複数起動しようとしているかもしれません。
この場合はWindowsのAPIでエクセルの終了を確認してから
次の処理に移る(次の人の処理に移る)制御をしないと
いけないのかもしれません。APIは詳しくありませんが。
この回答への補足
>2.セットすべきデータをファイル出力
>(一時保管用。エクセル自動起動はしない)
の意味がわからないのですが。とりあえず一覧形式でシートに吐き出して
あとはすべてExcel/VBAで処理するということなのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Excel(エクセル) Excel起動時にエラーダイアログが表示される 3 2022/07/28 19:52
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
共有しているEXCELシートのアク...
-
エクセルVBAでアクセスファイル...
-
エクセルを開いたときのシート
-
エクセルでファイルを閉じても...
-
エクセルで複数のブックで「元...
-
エクセルの中にエクセルを添付...
-
エクセルの塗りつぶしの色が勝...
-
ACCESSのVBで、エクセルファ...
-
エクセルのハイパーリンクがう...
-
ExcelファイルがDoxillionに突...
-
メモ帳(拡張子log)の数字デー...
-
変更されたリンク先を正しいも...
-
エクセルファイルbookにPDFファ...
-
Lotus 1-2-3のファイルをExcel...
-
グーグルドライブについて
-
エクセルの添付ファイルに記入...
-
エクセルのユーザー定義関数呼...
-
エクセルを閉じた時、ノッペラ...
-
ワード差し込み印刷時の数字に...
-
AccessからExcelブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでファイルを閉じても...
-
エクセルVBAでアクセスファイル...
-
Lotus 1-2-3のファイルをExcel...
-
共有しているEXCELシートのアク...
-
エクセルを開いたときのシート
-
400KBのエクセルは重いの?
-
エクセルで複数のブックで「元...
-
エクセルにクリックすると指定...
-
エクセルの塗りつぶしの色が勝...
-
ExcelファイルがDoxillionに突...
-
エクセルの中にエクセルを添付...
-
メモ帳(拡張子log)の数字デー...
-
ACCESSのVBで、エクセルファ...
-
CSVファイルでVBAを動かす方法
-
エクセルの添付ファイルに記入...
-
過去の定額郵便貯金の金利表
-
HTMLの表→Excel変換
-
2画面を使ってシート別に表示す...
-
エクセルファイルがファイルの...
-
エクセルのシートが常に小さく...
おすすめ情報