テーマ:エクセル 関数 マクロ(13)
カテゴリ:エクセルマクロ
【中古】 Excel VBAベーシック VBAエキスパート公式テキスト/田中亨【著】 【中古】afb ということで、会社のほうでは、勉強会なるものが開催されているらしく、 先日は、その発表会の様子を見学させていただきました。 自分自身は、エクセルマクロについては「それほど詳しくない」で通していますが、 一応、「VBAエキスパート」の「Excel VBAスタンダード」は合格しています。 …いろいろとひどい目にあったのもいい思い出です。 都合3回ほど試験会場に足を運ぶことになったのは、運が悪かったのでしょう。 (実際に試験を受けたのは2回で、1回落ちています…これは実力不足) 1回目は、「終了したか否か」がわからないタイミングで、世界レベルのサーバーダウン。 (試験用サーバーは海外らしいです) で、2回目は、「やり直し再試験」のつもりで臨んだはずが、 「前回の試験の結果が通っていた」ということで、後日に…で、受かりました。 試験対策でいうなら、「普段は使わない機能」である「レジストリへ書き込み」なんかはちゃんとやっときましょ。 内容がペラペラな部分のわりに、配転はしっかりとしています。 ペラペラって言っても、読んで理解しておかないと、まずもって「解けません」。 ※最初の試験の時はここの正答率は0%でした…うん、0点。 まぁ、この試験に合格していても(していなくても)、実務上は変わらないんですね。 まず、実戦で磨いたエクセルマクロの作り方は、この試験では学ぶことはできません。 大したものが作れない人間が言っても、説得力はないかもしれませんが、 エクセルマクロで「データベース管理」みたいなことをCSVデータで行う発想には至らないでしょう。 いや、それが至高であるとは思っていませんが、管理上は結構早くて便利なんです。 データベースをがっちりやるなら、Accessとかで組むのが手っ取り早いですが、 「全員が持っているわけではない」というハードルがそびえたっているので、 結果として、「エクセル」でできる範囲で作ることになるわけです。 で、そのデータベースを「エクセルファイル」で持とうとすると、 読み込みとか、書き出しとか、いろいろな面で時間がかかるデータが出来上がります。 以前に、「フォルダ内のエクセルファイルを開いて所定の場所へ集計」みたいなマクロ作りましたが、 集計する機能よりも、エクセルを開いて閉じる時間が長すぎて、200ファイルくらい扱うと、 10分くらいは作業ができなくなるんですよね。 CSVファイルを配列にポン入れして、読みだすほうが高速です。 最近やったものだと、ファイルサーバーへのアクセスログファイル(10万行以上)から、 接続IPごとの「送受信容量」を「指定時間幅(10時~15時の間みたいに)」で集計するマクロを作りましたが、 20~30秒ほどで、目的のデータを抽出することができました。 ビバ、CSVファイル。 ちょっと前までは、エクセルで開くCSVファイルのトラブルが嫌で、 あんまり使いたくなかったのですが、 テキストデータとして取り込むマクロを組むようになってからは、 データベース用のファイルとして優秀だと思うようになりましたw テキストとして扱えば、高速なメモリ上にデータを残せるだけでなく、 エクセル上で開く必要もなく、非常に軽快に処理を進めることができるわけです。 10万行オーバーのデータでも、エクセルで開いている時間で処理が完了するくらいには早いです。 ちなみに、データの中身を見たいだけなら、普通に開いたほうがなんぼか早いです。 (10万行以上のデータをエクセルにコピペしていくよりは…っていう話です) ということで、複数のデータを扱うデータベースを作りたいなら、 エクセルのシートを無限に増やしていく手法をとるよりも、 CSVファイルとVBAを駆使して、エクセルで構築しちゃうほうが高速なものができます。 …まぁ、実際に、それに向けていろいろと準備していて、その過程で気づいたわけですが。 今回はここまで! 実用的なことをもっと推し進めたいですね~。 お気に入りの記事を「いいね!」で応援しよう
最終更新日
2018.03.29 22:10:52
コメント(0) | コメントを書く
[エクセルマクロ] カテゴリの最新記事
|