SSブログ

--- Excel だけでもここまで出来る ---- Access から Excel , pdf 出力 質問です、どうすれば速く作成できると思いますか? ~関工健児便り~ [教えて OA shimonoseki]






--- 2012-10-11 03:00 ---
   Access から Excel , pdf 出力

   質問です、どうすれば速く作成できると思いますか? の巻!

この手の話は、方法論として色々あります。

ですが、誰でも出来て簡単に、と云うと難しい。

皆さんの方法をお聞きしてみたいです。

私は、VBA は専門家では、ございませんが、1つの答えは持っています。
2012-10-10-vba.jpg

ある所でも使って貰っていますが、当初は5~10分/2000件、ページ枚数はそれなり、数百枚になります。

ですが、

今現在は、1分以内で、出力できる様にしています。

発想の転換といいましょうか、出来ないことは、出来るプロを見習えば良いと言う事です。

どうやって、短縮させるか? 考え方だけお聞きしてみたいと思います。

具体的では無くても結構です。

どうやれば、良いかだけを考えてみて下さい。

出来るかどうかは、その答えと私の理解力になりますが、、、
(^^;

普段は、全く別の業界のお仕事をされている方のお考えも聞いてみたいです。

全く見当違いだからと思われずに、気軽にコメントしてみて下さい。

今回のは、全て非公開にいたしますので、、、

見るのは私だけ、、、沢山のご意見が集まれば、私なりに、まとめたモノを投稿したいと思います。

是非、ご協力を!

--- 2012-10-22 06:38

前回の質問は、少々、難しいですかネ、、、(^^) もう少し、引っ張らさせて下さい。 コメントお待ちしております。

   Excel だけでもここまで出来る の巻!

先週末に、質問を受けましたので、皆さんにも参考になるかと思い、カキコ致します。

エクセル、表計算で、小口現金など出納帳の代わりにとりあえず使用している方! 多いのでは無いでしょうか?

大手さんでは、xxx大臣などシーリーズで出されていたり、フリーのお小遣い帳などを使ったり、と、色々でしょうかネ!

今回は、 Excel で作成されている方の応用編です。

(質問内容)

エクセルで、以下の様な、出納帳を作成しています。

例) 入力Aシート といたします。

日付   科目        適用                                           入金    出金      残高 

10/20 10 出張費 10/8 ダレそれ花子 小倉へ出張 精算分 ..,..0- 16,000- +44,000-
10/21 20 通信費 切手 @80x10枚、@50x10                ..,..0- .1,300- +42,700-
...

まぁ、こんな感じでしょうか、、、

これを作るのは良いのですが、如何せん、月別などに、科目毎に明細を分けておきたい訳です。

まぁ、経理関係をされた事がある方なら当然ですネ。。。

ですが、、、

さて、、、皆さんなら、どうします?

科目があるならフィルタかければ、良いじゃないの! そこまでは、普通です。

ですが、これにフィルタをかけると入力できなくなってしまいますし、範囲指定やら、科目の変更などなど、科目毎の印刷でも、通算の残高が変わってきます。。。 しかも、毎回フィルタ掛けるのは面倒です。

やはり、専用にしなければ、、、

じゃ、 VBAマクロ で組んでみますか?

慣れた人なら、プログラム言語は判らなくても、マクロの記録だけでも、なんとかなります。 多少の英単語が分かれば、あとは、ヘルプとwebで調べて、ちょちょいのチョイ!

本当にこれで良いでしょうか? 専門家にまかせれば、簡単でしょうが、これ実際に使うのは経理関係の事務員さんです。 本人が分かっていれば、少々 VBA で組んで不具合が出ても対処できます。

それに致命的なのは、本当にソフトウェアの様にフォームを作り、誰でもその入力フォームから、入力検索印刷 出来なければ、エクセルですから、コピペで簡単に壊れてしまいます。

こう云った経験も、ほとんどの方があると思います。

私、5分程度、、、

う~ん、、、無理かな?

組まないと!

再度、現物の帳票を見せてもらって、検討を!

5分、、、

考慮中、、、!

出来ました。。。

(答え)

このAシート

1) Bシートへ複製(新規作成:コピー)します。

まずは、これで、書式も揃った、複製の出来上がりです。 一から、書式を入れなおす必要もありません。

2) Bシート から Aシートの内容を単位で全てセル参照に致します。

例)  Bsheet ... Cell a1 ="A"!"a1"

まぁこんな感じ! 微妙に間違えていたら修正を! 大体、意味は判ると思いますが、、、

3) Bシート の内容を、科目別のレイアウトに加工しましょう。

科目印刷用のセル: z1 = "10" とします。

10月分   科目(10:出張費)                                                                 z2="xx"

日  適用                                           金額      残高    ⇐印刷はここまで フィルター用の項目

20 10/8 ダレそれ花子 小倉へ出張 精算分 16,000- +16,000-                     ="A"!"a2" ★科目コード です。★

4) 科目別のシートを調整、作成

 2)で基本は作成済みなので、科目z1のみ入力できれば、同じようにコピーシートで複製できる様に作りましょう。

それ以外も、全て参照設定ですから、カラムがズレたら困りますので、a$2 など設定をしておきましょう

不要な項目は削除してもかまいませんし、非表示にしていても良いと思います。

フィルターは、全部のカラムに対しての Auto-Fillter ではなく、z カラムのみのフィルターにしましょう。 この方が、全ての参照項目でフィルターを掛けるより、1つのカラムの方が断然、早く動作します。

5) まだ、意味が判らない方へ作る時のポイントです。

フィルターをzカラムで空白以外を指定します。 ですから、zカラムのタイトル行などにも、何かしら文字をいれます。

zカラムは常にフィルタ状態、あとは、参照設定の項目に IF 文を入れます。

例)

=IF ("A!b2" = "B!z1" , "A!b2" , "")

解説: もし、Aシート・科目コード=Bシート・科目印刷z1

 , 真(正しい)時は、Aシート・科目コード をそのままセットします。

 , 偽(その他)時は、"" 何もない値を入れます。(これは、フィルタの通常処理で出てくるモノに合わせています、操作が簡単なように!)

6) あとは、残高だけ前行+現行の金額 が残高になります。 これは、適宜、自分の合う形にして下さい。 前残を引き継ぐのか、今月のみの累計だけで良いのか! になりますネ。

前残が必要な時は、繰越残高を入力できる様にして、そこから、累計していけば良いと思います。

この時に、空白行にも数値が出てしまいますので、5) と同様に、空白だったらの様な、Bシート・科目コード≠"" (空白以外)の時だけ合計を表示させるなど関数・条件文が必要です。

コレ以外には、各行の参照設定 5) を更にアレンジしないと無意味な数値がどんどん出ます。(null error、数値ゼロ など) 印刷の時には美しくないですネ!

これもほとんど同様ですから適宜、修正して下さい。

7) 合計の出力について

出納帳では、一番最後の行くくりを入れて締めますが、このエクセルは一応何行あるか分からないので、一番下段にきれいに出す事はできません。(まぁ最後の行+1行でも良いですが!) よって、見出しの直下に合計を表示させる方が、他の書類と見比べる時も、見やすくなって良いと思います。

8) 最後に!

このシートは、有限・行の設定です。 既にお判りの通りでしょうが、自分で使用する伝票の枚数に合わせて、まずは、入力シートの書式などキチンとして置かなければなりません。

参考までに、固定のセルを参照する場合は、名前をつけたり、セルに設定入力項目に背景色を着けたりした方が分かりやすいかもしれません。

これで、ほぼ、お判り頂けたかと思いますが、まだ、補足が欲しいなどありましたら、コメントへお願いします。 この時は、コメント表示:可否を一緒にお願いします。

私以外が読むと、困る様な情報もあるでしょうから、うっかりが無い様にして出来るだけ具体的にカキコして下さい。

どこへ、記載すれば良いかもお願いします。 この追記でよければ、そのまま追記いたしますし、直接、エクセルなどを添付して、回答を聞きたい場合はメールアドレスなどお願いいたします。

コレ以外にも、色々あります、ほとんど応用です、一見できなさそうな複雑な集計も、シートやセルの計算式をうまく組み合わせれば、意外と簡単にできるものです。

今回は、シートの参照フィルタ関数 if 文 だけですネ、工夫すれば簡単に出来るものです。

---

又、機会があれば、追記するなり、したいと思います。

pdfコメント下さい、、、色々、こちらも勉強になりますので、、、!

では、今週も、共にガンバ(^^v しましょうネ。

---

--- 2013-11-03 am9:37 ---

EXCELL の高速データ出力方法

ほったらかしのパパ?ママでしたネ

(答え)

マクロの記録みたいな方法

エクセルへQueryをエクスポート

VisualBasic に変換?か記録を保存かモジュール作成保存

みたいなので、コードを調べます

テーブルなどをエクスポートするMicrosoftの標準コマンドは速いでしょ

これが何を使って速く動作しているのかが分かれば、大半の問題は解決です

ヘルプでも紹介されてるコードでした

これで、Excelの表示更新をOFF

エクスポート、名前を付けて保存

アクティブBOOK、シートになっているので、シートを全選択

コピー アンド ペースト(コピー先のシート)

メモリを消費しない様に、、、

クリップボードクリア(オプション) と エクスポートBOOKを削除

以降は好きに処理して下さい

書式なども、作成するエクセルをxlsでテンプレートの様にして、、、

そのBOOKに最初から書式設定をしておけば更にムダが省けます

xlt 作成ではありません

xls に貼り付ける時は、当然、値の貼り付け(オプション)になります

大体ですが、かなり旧式のxp、256M でも、、、

行数:90,000-くらいは出力&コピペは可能でした

時間は、件数、処理内容にもよりますが、、、

15分程度-->1分程度 まで短縮出来ました

短縮時間は、pcのスペックによりますが、、、

2分かかる事はありませんし、逆に、件数が少なくても30秒程度はかかってしまいます

如何でしょうか?

少し発想を変えれば、本当に速く組む方法は見つけられなくても、満足できるコードは書けるものです

多少でも参考になれば、、、と思います

明日見むら
村長さんでした
(^^)/~~~

asumi-mura
by. Fast Excell Data PicUp

\(^^) ~関工健児便り~






nice!(0)  コメント(0) 
共通テーマ:地域

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。