Access97から社員マスタを基に、一人1ブックずつExcelデータをバッチで作成しています。一人ずつの処理なら問題なくできますが、400名を一度に実行すると、Excelの「メモリ不足」でハングアップしてしまいます。
Accessのフォーム上で区分を入力し、それをもとに個々にどのブックを開くか判断してOPENします。内容をセットして別名で保存しています。
一人ずつの各ループの中でExcelの起動・終了をしているのがまずいのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

400ファイル出力時に


エクセルを自動起動していますか?
(しないことをおすすめします)
していないのにダメな場合は
まとめたものを1ファイルとして
出力したものを使うのが良いのでは
ないでしょうか。

ファイル出力というのは
そうです、EXCELです。

一つひとつを画面で開くと
重いのではないでしょうか。
開いてますか、基になる各ブックを。
(画面上に表示されないような処理
をおすすめします)
もし面倒でなければ少し詳しく
処理、画面の流れを説明してください。

この回答への補足

本当にていねい説明していただいてありがとうございます。
長くなりそうですが、もう1回最初から説明します。
Excelの画面は起動していません。
Acessテーブルとして社員マスタがあります。それと部署マスタ。
(社員マスタの内容は、番号、氏名、所属、役職、職種、身分・・)
社員1人1ブックでEXCELデータを作成しますが、その際にテンプレートとなるブックを、役職・職種で判断し選択しています。(これは別関数)
更に作成したブックは部署ごとにフォルダを自動作成してそこに保存しています。(これも別関数)
PGとしては本当に単純な構造ですが

・SQL文で社員マスタから対象社員をセレクト(レコードセット作成)
・Excelオブジェクト作成(Set exce = = CreateObject("Excel.application"))
・レコードセットの社員コードでループ
   社員マスタの役職・職種から対象テンプレートを選択
   そのブックを開く
   値をセットする
   保存先のフォルダ名取得
   別名で保存
   そのブックをクローズ(false)
そのシートオブジェクトを開放
   ブックオブジェクト変数開放
・ループ抜け
   Excel終了(オブジェクト.Quit)
Excelのオブジェクト変数開放
処理終了

以上です。今までいただいたアドバイスをもとに、じっくりもう一度やってみようと思います
   

補足日時:2002/02/12 09:47
    • good
    • 0

2.セットすべきデータをファイル出力についてですが


処理の内容が分からないので推測ですが
個別に400ファイル出力しても
400人分を1ファイルとして出力しても
可能だと思います。
個別ブックと個々のデータをつなぐ
情報があれば。
あとはExcel/VBAで処理するということです。
画面の見た目では
アクセスを動かして
自動でエクセルが処理して
アクセスに戻ってくるイメージ
なのでご希望に近いものではないかと思います。

この回答への補足

>個別に400ファイル出力しても

この部分でコケてしまってます。(メモリ不足)
・・というよファイル出力というのはEXCELに、と考えていいんでしょうか?


いわゆる社員マスタの内容を1人1ブックで出力していますが
社員の役職や職務内容に応じてPGで基となるブックを切り替えたり
しています。

補足日時:2002/02/10 15:10
    • good
    • 0

根本的な解決になっていませんが


エクセルの起動をせず、ファイルの出力だけ
まとめて行ってしまってから
エクセルで処理をするというのではだめでしょうか。
個々のブック用のデータをそれぞれ一括で作成してしまい、
あらためてエクセルで処理する。
処理のイメージ
1.アクセスのフォームで区分を入力
2.セットすべきデータをファイル出力
(一時保管用。エクセル自動起動はしない)
3.400人終了したらマクロを持った
エクセルファイルを起動
(アクセスから=エクセル自動起動する)
4.エクセルファイルはファイルを
開いた時に自動開始するマクロを持っている。
2で出力したファイルと個々のブックを
照合しながら内容をセット、別名保存を
400ファイル、自動で繰り返して
終了したら、エクセルを自動終了
5.アクセスに戻る。
というのはどうですか。
不明、不足は質問ください。
他には、エクセルが複数起動しようとしているかもしれません。
この場合はWindowsのAPIでエクセルの終了を確認してから
次の処理に移る(次の人の処理に移る)制御をしないと
いけないのかもしれません。APIは詳しくありませんが。

この回答への補足

>2.セットすべきデータをファイル出力
>(一時保管用。エクセル自動起動はしない)

の意味がわからないのですが。とりあえず一覧形式でシートに吐き出して
あとはすべてExcel/VBAで処理するということなのでしょうか?

補足日時:2002/02/09 18:14
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qチャイルドシートは、汚れが目立つの?(ベージュ)

チャイルドシートの購入を考えています。
実際に利用されている方に質問です・・

実際に使ってみると、チャイルドシートは、
どれくらい汚れるものでしょうか?

車の内装にあわせ、ベージュ、白系のチャイルドシートの
購入を考えていますが、汚れが目立つのでは?っと心配しています。
アドバイスをお願い致します。

Aベストアンサー

こんにちは。

うちもベージュ系ですが、汚れはそんなに目立ちませんよ!
座ってるだけなので、靴の汚れやたまにパンやお茶を飲ませたりするのでその汚れぐらいです。
以前ベビーカーを購入したときに、赤ちゃんの汚れはミルクやよだれが多いので却って黒など濃い色の方が目立ちますよって店員さんに言われました。

Qフォルダ内のexcelファイルを順に開いてマクロ有効ブックに別名保存して閉じるマクロを作りたい

マクロは難しい・・・

https://oshiete.goo.ne.jp/qa/2598781.html
上記URLでフォルダ内の全ファイルを開くマクロがありましたので参考にしていたのですが別名で保存の段階で詰まってしまいました。貴重な休日がああ~~
現在仕事の引き継ぎでマクロ非対応のファイルをマクロ有効にしようとしているのですが多いと1フォルダに100個、全部で400以上あるため自動でできたらなあと考えています
やりたい作業は、

1.同じフォルダにあるファイルを開く
2.別名で保存でマクロ有効ブックとして保存(名前は開いたファイルのまま)
3.閉じる
4.次のファイルを開く
5.1~4をフォルダ内のファイル全てに適用するまで繰り返す

というものです
URL先のコードに別名で保存のコードを入れればいいんじゃん!やったぜひとりでできるもん!と思い追加したいマクロを記憶しながらコードを見て作ってみたのですが同じ名前で保存されたり end sub が必要などとエラーが出て上手くいきませんでした(´;ω;`)

Aベストアンサー

失礼しました。パスの指定が不完全でした。これでどうでしょう。

Sub sample()
Dim Fs, Fl, Fn, wb
Set Fs = CreateObject("Scripting.FileSystemObject").GetFolder(ThisWorkbook.Path).Files
For Each Fl In Fs
Fn = ThisWorkbook.Path & "\" & Fl.Name
If Right(Fn, 5) = ".xlsx" Then
Set wb = Workbooks.Open(Fn)
Fn = Left(Fn, Len(Fn) - 5) & ".xlsm"
Application.DisplayAlerts = False
wb.SaveAs Filename:=Fn, FileFormat:=xlOpenXMLWorkbookMacroEnabled
wb.Close
Application.DisplayAlerts = True
End If
Next
End Sub

失礼しました。パスの指定が不完全でした。これでどうでしょう。

Sub sample()
Dim Fs, Fl, Fn, wb
Set Fs = CreateObject("Scripting.FileSystemObject").GetFolder(ThisWorkbook.Path).Files
For Each Fl In Fs
Fn = ThisWorkbook.Path & "\" & Fl.Name
If Right(Fn, 5) = ".xlsx" Then
Set wb = Workbooks.Open(Fn)
Fn = Left(Fn, Len(Fn) - 5) & ".xlsm"
Application.DisplayAlerts = False
wb.SaveAs Filename:=Fn, FileForma...続きを読む

Q新車購入について相談 (内装・シートカバー・スライドドア・ナビ・購入時期など)

トヨタのシエンタ(パールシルバー)のGグレード購入を考えてます。
1年以上検討したので、焦らないほうがとは思いますが、レンタカー代などもかかり、今月中には買いたいと・・・。
1つでもご回答お願いします。

(1)Gグレードを選ぶと、内装は自動的にベージュです。
(内装を黒にしたいならSエディションになる)内装はベージュの方が広く感じそうだと異議なしのつもりでしたが、兄は「外装白にするなら絶対黒だと思う」と。しかしSエディションにすると、標準装備が落ちます。
やはり内装はベージュより黒のほうが合いますか?

(2)シートカバーについて
母は純正ベージュ皮調シートカバーや、インテリアの木目調パネルに惹かれていますが、高いし購入に迷っています。
どう思われますか?

(3)Gグレードは助手席側後席が電動スライドドア標準装備です。運転席側後席も電動にしたいならプラス5万です。以前「両側電動スライドドアは本当に便利」という声を何度か読んだのですが(口コミの掲示板)どうですか?

(4)純正HDDナビを考えてます。デュアル画面(助手席ではDVDが見え運転席ではナビが見れる、また運転中でも助手席ではナビの操作をできるというもので、惹かれますが一番高い)はいいですか?
また、音楽保存できるんだからMDはいらないと思ってましたが、自分の手持ちのMDの多さや、乗車する人がMDを聞きたいかもと思い、MD付がいいかと迷っています。
また、ハンディフリーなどのblueなんとかとかは、便利ですか?
画面の種類もいろいろあります。
純正ナビでお勧めはなんですか?

(5)購入時期ですが、11月中に買おうとしていますが、
ちょっとのことで1月までまてば「19年前期車」となり査定の時など全然違うと聞きましたがどう思われますか?

トヨタのシエンタ(パールシルバー)のGグレード購入を考えてます。
1年以上検討したので、焦らないほうがとは思いますが、レンタカー代などもかかり、今月中には買いたいと・・・。
1つでもご回答お願いします。

(1)Gグレードを選ぶと、内装は自動的にベージュです。
(内装を黒にしたいならSエディションになる)内装はベージュの方が広く感じそうだと異議なしのつもりでしたが、兄は「外装白にするなら絶対黒だと思う」と。しかしSエディションにすると、標準装備が落ちます。
やはり内装はベージュ...続きを読む

Aベストアンサー

(1)車のキャラからいって、内装はベージュのほうが合っている感じがします。(もう少し言うと、キャラから考えて白はあまりふさわしくないような・・・)

(2)どちらもいらないと思いますが・・・特にシエンタに木目は不要だと思います。車格が低いので。

(3)実際に後席ドアをどれだけ使うかの頻度によって違ってくると思いますし、駐車場の関係で、どちら側をよく使うかというのも関係するでしょう。また、坂道に止めることが多ければかなり重宝するでしょうね。ただ、シエンタくらいのコンパクトな車のドアは、比較的軽く閉められるので、展示車などで効果のほどを確かめたほうが良いと思います。

(4)私個人の考えですが、助手席側だけDVDを観るシチュエーションが想像できません。普通のものでじゅうぶんだと思います。ただ、私は社外品をオススメします。身内が今年購入したヴィッツの純正HDDナビ、「最低」でした。道路や案内ルートがよく似た色ばかり使って本当に見づらく、操作性も悪くて、直感的に使えない駄作だなと思いました。カロッツェリアの楽ナビあたりなら、親切度や測位も高レベルで安価ですよ。MD再生OKの機種もありますし、カー用品店の作業員に頼めば、走行中の操作もOKになりますしね(運転者は走行中操作しないこと!)。ハンズフリーやbluetoothは、よほど頻繁にかかってくる人でない限り実用性はないでしょう。

(5)「全然違う」とまではいかないと思います。確かに2年くらいで乗り捨てるようであれば大きく変わるでしょうが、5年、10年使うならさほど変わらないでしょう。5年で4,5万(2,3万かも)の違い、10年でほとんど違いなしかと思います。シエンタは来年あたりには生産中止で消滅濃厚モデルなので、プレミアがつくか、マイナー不人気中古車になるかですが・・・おそらく後者が濃厚なので、長く乗りつぶしてあげるほうが吉だと思います。

(1)車のキャラからいって、内装はベージュのほうが合っている感じがします。(もう少し言うと、キャラから考えて白はあまりふさわしくないような・・・)

(2)どちらもいらないと思いますが・・・特にシエンタに木目は不要だと思います。車格が低いので。

(3)実際に後席ドアをどれだけ使うかの頻度によって違ってくると思いますし、駐車場の関係で、どちら側をよく使うかというのも関係するでしょう。また、坂道に止めることが多ければかなり重宝するでしょうね。ただ、シエンタくらいのコンパクトな車のドアは...続きを読む

QACCESS97からEXCELへのEXPORT

テーブルより、通貨型で書式は固定、小数点以下桁数1に設定しています
ACCESS上での表示は小数点以下1桁で表示されますが
EXCELにEXPORTすると小数点以下2桁表示になってしまいます
ACCESS側の設定で、EXPORT後小数点以下1桁で表示出来るようには出来ないでしょうか?
宜しくお願いします。

Aベストアンサー

「format」を使い、データの書式を設定すれば1桁になると思うのですが、いかがでしょうか。

Q車のシートがベージュ

車のシートがベージュだと汚れやすいですか?
万が一珈琲やコーラ等の黒い液体をこぼした場合、
染みになりますか?
それともある程度撥水してすぐ拭き取れば大丈夫ですか?


新車を購入するのですが、
欲しい車の好きな色だとシートの色がベージュしかないのです。
(フィットハイブリットの赤)


子どもが小さくて汚すので、
ベージュのシートは不安です・・・。
実際に淡い色のシートをお使いの方、感想を教えてください<(_ _)>

Aベストアンサー

私は5ヶ月前に新車でランドクルーザープラドを購入しました。が、東日本大震災やタイの洪水などあって納車は3ヶ月半待ち。私も内装は黒が好きなので(ボディーはパールホワイト)黒を注文しました。
しかしディーラーの注文ミスで標準色のベージュが来てしまいました。再度注文と担当者に言いましたが、また同じ様に3ヶ月ほど納期がかかるという事で10万円分の追加オプションを付けて貰いしぶしぶ納得しました。今まで内装は黒しか乗った事が無いので最初は本当に抵抗ありました。でも人間なんでも慣れですね。普通に乗っていると少し時間が経つとなんだベージュもなかなか良いじゃん。ってなりました。
私もなんで内装は黒かと言うとやはり汚れです。黒はホコリなどは目立ちますが、飲み物をこぼした時などサッと拭いておけば全く目立ちませんもんね。ベージュだとそう言う訳には行きませんからね。そこで私もオススメなのがシートカバーです。純正品は高価なのでホームセンターなど売っている自社ブランドでほぼ全サイズ適用なシートに被せるだけの物が売っています。運転、助手席はもちろん2列目シートに付けてます。お子様の食べこぼしや飲みこぼし位ならほぼこれで防げると思いますよ。カバーが汚れればまた買えば良いんですからね。ちなみに運転、助手席は各980円後部座席は1480円でした。3つ合わせても4000円弱ですからね。内装色か嫌だからってボディーのカラーは絶対に妥協しない方が良いですよ。

本当にグタグタ長々と申し訳ありませんでした。

私は5ヶ月前に新車でランドクルーザープラドを購入しました。が、東日本大震災やタイの洪水などあって納車は3ヶ月半待ち。私も内装は黒が好きなので(ボディーはパールホワイト)黒を注文しました。
しかしディーラーの注文ミスで標準色のベージュが来てしまいました。再度注文と担当者に言いましたが、また同じ様に3ヶ月ほど納期がかかるという事で10万円分の追加オプションを付けて貰いしぶしぶ納得しました。今まで内装は黒しか乗った事が無いので最初は本当に抵抗ありました。でも人間なんでも慣れですね。普通...続きを読む

Qリストボックスで選択したexcelブックのデータをマクロのあるexcelブックにコピーしたい

リストボックスを作り、そこに開いてるexcelブックを表示させて選択できるようにしてあるのですが、リストを選択してボタンを押したら、選択したブックのsheet1のA1~B80をマクロのあるブックの"処理用"sheetのA列B列にコピーなるようにしたいのですが上手くいきません

マクロ.xlsmの
リストはActiveコントロールのリストボックスを作り
Private Sub ListBox1_GotFocus()
    Dim wbook As Integer
    ListBox1.Clear
    For wbook = 1 To Workbooks.Count
        ListBox1.AddItem Workbooks(wbook).Name
    Next wbook
End Sub
としてます。

で、別にボタンを作り

Sub ボタン_Click()
Dim target As Variant
Worksheets("マクロ").Select
target = Worksheets("処理用").ListBox1.Text

Workbooks(target).Activate
Sheets(1).Select
Sheets(1).Range(Cells(1, 1), Cells(80,2)).Copy
ThisWorkbook.Worksheets("処理用").(Cells(1, 1), Cells(80,2)).PasteSpecial
(以下略)

と続くのですが、実際に作動させると
Workbooks(target).Activateで「型が一致しません」となりエラーとなってしまいます。

"処理用"シートのD1に直接ファイル名を書いて、
target = Cells(4, 1)
Workbooks(target & ".xlsx").Activate
とやってた時はうまくいったのですが…

いろいろ調べてますが直せず困ってます…

リストボックスを作り、そこに開いてるexcelブックを表示させて選択できるようにしてあるのですが、リストを選択してボタンを押したら、選択したブックのsheet1のA1~B80をマクロのあるブックの"処理用"sheetのA列B列にコピーなるようにしたいのですが上手くいきません

マクロ.xlsmの
リストはActiveコントロールのリストボックスを作り
Private Sub ListBox1_GotFocus()
    Dim wbook As Integer
    ListBox1.Clear
    For wbook = 1 To Workbooks.Count
        ListBox1.AddIte...続きを読む

Aベストアンサー

やっぱりtargetの型はstringにすべきですね。
そうすれば、target = Worksheets("処理用").ListBox1.Textの時点で落ちるはずなので問題の切り分けが出来ます。対処も見つかると思います。

Q内装がベージュの軽

内装がベージュ系統の軽を探しています。現在検討しているのは、スズキMRワゴンかラパン、ホンダライフ等なんですが、色々見ているうちに自分の希望がわからなくなってしまいました。以前は興味なかったものでも真剣に考えたり、またその逆だったり。。。そこで何かみなさんの意見が聞きたいのです。勿論内装の話だけでなく、視界の見渡し、運転のしやすさ、手入れのしやすさ等の意見も聞かせてください。他の軽もお勧めがありましたら宜しくお願いします。
とにかくベージュ仕様(白~ベージュ~オレンジ系統。青~グレー~黒系統を除いたもの)を第一条件と考えています。安らぐような、やわらかい可愛い雰囲気が希望です。日産マーチ(普通車ですが)のエクリュみたいなものだと可愛いんですが、ちょっと汚れが心配。。。その辺はどうなんでしょうね。ちなみに日産モコは可愛いのですが割高?なので検討外です。

Aベストアンサー

こんばんはです。
お勧めは絶対にラパんです。
私は、ラパン、MRワゴンをディーラーの展示車を見てきてます。ラパンは室内の開放感が良く、室内のシートなど布製品の触り心地が感動でした。あと運転席から車のボンネットの左右の角がよく見え運転しやすそうでした。

 MRワゴンは室内の開放感がラパンに比べて苦しかったです。座ってみて肩の上からの頭上空間がせまいのです、ドアガラスが近いような気が・・・。

やっぱり高い買い物なので後悔のないように展示車や試乗車を運転したり触ったりして、comuneさん自身の感覚で決めるのが一番だと思いますよ。

Q個々のセルに入力した数字の合計を別のセルに一桁ずつ表示する方法

こんばんは。いつも大変お世話になります。
なかなか良い関数の使い方が思いつかず、また皆様のお知恵を貸していただければと思い、質問させて頂きます。

E1に「3」、F1に「5」、G1に「7」 今日の売上値とする
H1に「9」、I1に「7」、J1に「5」 昨日の売上値とする
※ G1,J1は百の位 F1,I1は千の位 E1,H1は万の位です
この合計値をA1(万の位)、B1(千の位)、C1(百の位)にそれぞれ出したいのです。
この場合だとA1に「13」、B1に「3」、C1に「2」となります。

上記のような事をしたいのですが、可能でしょうか?
申し訳ありませんが、何とぞよろしくお願いします。

Aベストアンサー

こんばんは

何通りか記載します

1案 一旦文字列にしてから計算

A1 =INT(((E1&F1&G1)+(H1&I1&J1))/100)
B1 =INT(MOD(((E1&F1&G1)+(H1&I1&J1)),100)/10)
C1 =MOD(((E1&F1&G1)+(H1&I1&J1)),10)

実際は入力エラーチェックの式を付加する必要があります。

2案 こちらは数値に忠実な処理

A1 =INT((SUM(E1,H1)*100+SUM(F1,I1)*10+SUM(G1,J1))/100)
B1 =INT(MOD(SUM(E1,H1)*100+SUM(F1,I1)*10+SUM(G1,J1),100)/10)
C1 =MOD(SUM(E1,H1)*100+SUM(F1,I1)*10+SUM(G1,J1),10)

3案 配列数式

A1 =INT(SUMPRODUCT(E1:J1*{1,0.1,0.01,1,0.1,0.01}))
B1 =INT(MOD(SUMPRODUCT(E1:J1*{0,1,0.1,0,1,0.1}),10))
C1 =MOD(SUMPRODUCT(E1:J1*{0,0,1,0,0,1}),10)

こんばんは

何通りか記載します

1案 一旦文字列にしてから計算

A1 =INT(((E1&F1&G1)+(H1&I1&J1))/100)
B1 =INT(MOD(((E1&F1&G1)+(H1&I1&J1)),100)/10)
C1 =MOD(((E1&F1&G1)+(H1&I1&J1)),10)

実際は入力エラーチェックの式を付加する必要があります。

2案 こちらは数値に忠実な処理

A1 =INT((SUM(E1,H1)*100+SUM(F1,I1)*10+SUM(G1,J1))/100)
B1 =INT(MOD(SUM(E1,H1)*100+SUM(F1,I1)*10+SUM(G1,J1),100)/10)
C1 =MOD(SUM(E1,H1)*100+SUM(F1,I1)*10+SUM(G1,J1),10)

...続きを読む

Q車の内装の合皮補修内装の合皮部分が汚れていて、内装を拭くシートで擦ったら、合皮は黒なのですが、擦っ

車の内装の合皮補修
内装の合皮部分が汚れていて、内装を拭くシートで擦ったら、合皮は黒なのですが、擦った部分が少し白きなってしまいました…
自分で補修したいと考えてますが、何か良い補修クリームみたいな物はないでしょうか?
傷は付いていません、擦りすぎで少し白くなってしまったのです…
良い物があれば、教えて下さい。
お願いします。

Aベストアンサー

多少ツヤ質感差は出てしまいますが、革靴用の”乳化性クリーム”黒を少量薄く塗って乾拭きすれば良いです。
WAX系の靴墨と間違えない様にしてください。
合成皮革の汚れを落とす場合、車用の内装クリーナーだとアルコール系の溶剤が入っていることがあるのでお勧めしません。
薄めた中性洗剤を含ませて絞ったタオルで拭くか、革靴用の汚れ落とし用クリーナーで拭くのが良いです。

Qエクセルで作成した、某列のデータをaccessに張り付けれますか? accessの方は一件ずつ手打ち

エクセルで作成した、某列のデータをaccessに張り付けれますか?
accessの方は一件ずつ手打ちするフォームになってるのですが、エクセルみたいなセル画面にして一気に張り付けるとか、、、
もしくはエクセルで作ったものをCSVにして保存し、それを読みにいくとか、、?

考え方を教えてください!

Aベストアンサー

フォームに直接は無理なので、元になってるテーブルをエクセルにコピペ→エクセル上で該当列を書き換え→テーブルに全置換でコピペ、がやり方としては簡単かな、と。
但しテーブルのKeyとかを理解してないと失敗する可能性もありますのでテストデータで試してみるのをオススメ


人気Q&Aランキング