VBA

仕事でエクセルのVBAを使って、すごく楽になった。こういうメリットがあって、手放せないという話を教えてください。その場合、できるだけ、どういうプログラムなのか想像できるような書き方でお願いします。詳しければ詳しいほどポイント弾みます。質問の意図:エクセルを今まで仕事に使ってVBAを勉強しています。確かに強力な機能ではありますが、いまいち用途が見えてこないし、正直いって、なくても困らないと思っています。そんな私を、vba無しでは生きられない体にしてください。お願いします。

CSVで出力されたファイルを取り込み、帳票として XLSファイルを作成するような業務に用いてます。


というか、そのようなパターンのVBAばかり作ってます。


パターン作業みたいなものを VBAによって一括で作業してしまうといった感じですね。

個人的には、勤怠の管理をするのにちょこっと使いましたが、普通には あまり使わないですねぇ。


VBAは、定型業務を行うのに向いていると思いますよ。

そのような業務がなければ、あまりメリットはないでしょう。

ちょっとしたツールだけど、使っています。

小さな文字のデータを読む時に便利です。

ここにいろいろなツールが載っています。

URLはダミーです

僕は、Excelで作られたデータベースのテーブル設計書を元にしてそのテーブルにアクセスするためのJavaのプログラムを出力するプログラムを書きました。アクセスのロジックとデータベースの構造さえわかれば書けるプログラムだったのでVBAでかけました。いわゆる、DAO(Data Access Object)といわれるものです。Javaのプログラム的にはデータベースの構造を隠蔽化して業務クラスはそれぞれの業務のロジックに集中できるように作られるクラスです。データベースへのアクセスはすべてDAOによって行われます。

そのプロジェクトでは100近くのテーブルについてそれぞれ複数のパターンでアクセスする必要性がありましたがそれぞれ、数百から数千ステップもあるプログラムを手で組んでいてはすさまじいばかりの時間と無数のバグを作り込んでいたことは想像に難しくありません。

ExcelVBAで作った場合間違いがあってもVBAを直しプログラムを再生成するだけですのでさほどの時間はかかりません。

結果的に数十万行のプログラムを書くべきところVBAのプログラム1000行程度を書くだけですみました。また、プロジェクトが変わってもこの種のプログラムはたいてい必要になるので手直しする程度でまた再使用できます

漢字の人名に読み仮名を振る.

2000人ぐらいいたのでえらく助かりました.

システム寄りだとODBCでDBサーバから数値を取ってきて自動でグラフを作るくらいでしょうか・・・

ダミーURLで申し訳ありません。

EXCELVBAでというと、私の場合はSQLサーバーがらみでいくつかあります。

EXCELSQLサーバーに接続させ、データの取り込みを行い、グラフや集計表を更新して、レポートとして印刷できるようにしています。

SQLサーバー上のデータは上司更新されているため、いちいちEXPORTして…だと面倒なんですよね。(^-^;)

ちなみにマクロでも出来るだろとツッコミを頂きそうですが、VBAならではってことで、SQL分をSQLサーバーに投げるのと、SQLサーバー上のJOBの起動を行い、データ更新をしています。

ただ、データ更新はJOB起動をするだけなので、終わったかどうかが解らないので1分待ってもらってますが…。(=_=;)

VBASQLサーバーやらのコントロールが出来ますので、そこら辺をいじるともうVBA無しでだと物足りなくなるかと。

http://www.rakuten.co.jp/

楽天市場】Shopping is Entertainment! : インターネット最大級の通信販売、通販オンラインショッピングコミュニティ

URLはダミーです。

私の場合、○○(株)や、(有)△△という会社の、○○や△△だけを読み仮名をふり、名簿を作って並び替えたりするのに使っています。

UNIXサーバの管理業務では、CPU使用率、メモリ使用率、HDDアクセスなどの30項目以上におよぶログデータを月に1度(30日分を)まとめる必要があります。

対象サーバは15台(1台あたり800MHzのCPUが10発以上載ってたりします)で、ログデータはものによって、5分単位のものや10分単位のものがあります。

これらはテキストデータで取得可能ですが、時間ごと、日にちごとの平均/最大値を計算し、グラフ化が必要です。

当初は、これを手作業で実施していたために、丸3日以上必要でしたが、今やものの15分程度に短縮されています。

(私も1サーバ分だけ手作業をやったことがありましたが、とてもじゃありませんが全サーバ分はバカバカしくてできませんでした。)


当然、手作業では加工の精度も疑わしいですし、こういった作業は実装の軽さ、フォーマットの柔軟さを考えるとエクセルのVBAを使うのがベストな選択だったといえます。

http://www.hatena.ne.jp/1112678234

人力検索はてな - コードが短くて(希望)、実用的なエクセルのVBAについて詳しく書かれたサイト(単なる、プログラムの練習的な内容や、関数を説明するためのものではなく、実際の業務か..

先ほどはハンパな回答しまして恐縮です。

こちらの質問で、何をお探しなのか、若干理解を深めました。


ちなみに、私は大上段に構えて「VBAを使用した!」実感はありませんが、障害管理などの仕事を行う上で、Excelに羅列されたデータの集計やグラフ化は、マクロなしでは考えられませんが....。


元来「なくても困らない、が、あると便利」程度の認識でよろしいのでは?と思いますが....。

http://www.still.co.jp/

アイエルアイ総合研究所/VBA・マクロ不要のExcelアドインソフトStiLLの開発・販売

ちなみにこちらの会社では、Excelの機能の延長上に、開発ツールを乗っけて、グループウェアを語るにまで至っています。


使いこなすと、Excelもスゴイもんです。

(無論ツールの宣伝ではありませんので、念のため....。)

http://www.moug.net/index.htm

?X?L???A?b?v?E????????????[?O?????????I?@?????R?~???j?e?B?T?C?g?@???[?O

URLは参考になるページですが、ダミーです。


現在のVBAはVB6のエンジンを使用しています。そのため、VB6でできることはほぼすべて(8割から9割程度)実現する事ができます。


ただ、exeが作れない、エクセルを立ち上げていないと使えないなどの制約があるため、結果的にVBの機能を使用したい場合、圧倒的に使いにくくなります。


VBAの最大の利点は、エクセル上の表データへのアクセスが容易である事です。


tomo_kさんと似ていますが、データベース定義書からテーブル作成SQLを作成したり、JavaBaenクラス定義書から、Javaソースを書き出すという処理をよく利用します。このようなVBAの利用は多くのプロジェクトで頻繁に利用されます。


エクセルで記述されている大量のデータに対して、同じ記述や処理を繰り返すような場合に高いパフォーマンスを発揮するといえると思います。

そんなに難しいことには、使っていませんが、VBA無しではエクセルを使えなくなりました。

?業務で利用

 ー作業日報(日々の仕事時間報告書)を管理する仕事をしていたのですが、月末にそれをまとめるのが大変で作業日報をエクセル化して、月末の集計が楽になりました。

?見積書の作成:

 単価表をエクセルで作っておいて、

 製品の見積書を別シートで作成すると自動的に種類別の製品をリストで選択すると単価も落ちてくる。 単価が変わった場合は、元の単価リスト変更を加えれば見積り全体が変更されるので便利。これは、追加見積や変更見積のときにも便利でした。

?簡単な資産管理とか、源泉徴収用の元資料作りにも使えますよ。簡単なデータ一覧をいじるのには最適かと思います。その後の体裁もVBAで整えれるし。 

まあ、役に立ったみたい。
もっといえば、VO(Value Object)といわれるデータベースの内容を記録しておくコンストラクタ的なクラスも自動生成しました。
まあ、これは簡単ですけども。
DAOのほうがVBA上でJAVAを考えつつ最終的にはSQL文を発行することが目的であるからややこしい。