【VBA】別OfficeアプリにVBAを記述する理由

ユーザー目線で考える

どうも✋最近、やっと体調が回復してきたJimです😓

ということで今回は、、

何でExcel操作するのにExcelにVBAを記述しないの?

について、その理由について書き散らかしていきます。

な~んでかっていうと、特に意味はない。。

けど、ユーザー目線で考えたら、仕様の段階でそうなっちゃった。っていう。。

じゃあ、理由はユーザー目線か。。。

まあ、大きく分けると3点ほど理由があったのかなと。

業務ごとにマクロファイル使い分けるのは面倒

今までは、依頼ごとにマクロ作成してたけど、今回は『チームが手動でやってることを自動化』っというザックリの依頼。

勿論、そのチームには複数の業務がある。

んで、そこで業務ごとにマクロファイルを作ると、ユーザーは使い分けが面倒なわけで。

そのマクロは複数の人が使用します

当たり前田のクラッカーだが、1つのマクロで色んな業務ができるとしたら、同時に複数の人が使うわけで。

もう、読み取り専用にした方が使いやすいよね。っということ。

業務によってユーザーごとに進捗を管理する必要がある

読み取り専用にすると、『誰がどこまで』といった進捗管理や個人の設定みたいなものをExcelスプレッドシートでやるのは難しいよね。そうなると、もうアレだよね。

 

データベース管理になる

そう、データベース管理がスマートでしょ🍸

身近なもので言ったらAccess。せっかくAccessあるんだから使います。

Excelでも出来ないことはないけど、、、

大事!使い分け!

というか、Excelだとユーザーにいたずらされるし、慣れればSQL使た方が簡単でメンテも楽でしょ。

といっても、AccessにVBAを記述するわけじゃないっていうね。。

Accessで、ユーザーフォーム作るの面倒だしね。。。

ん?「なんでユーザーフォーム?」と思いました?

これにも理由があってね。。。

 

アプリケーションを非表示

Officeアプリケーションのタブやリボンって・・・邪魔じゃね?

邪魔でしょ❗

ユーザーにとって、それらは不要な情報だしね😥

だから、Open時のイベントでユーザーフォームを表示して、アプリケーションを非表示にする。。。

こうすれば、ユーザーフォームのみが表示されます。

スッキリするし、開発者のターンね👍

機能モリモリのツールを作る時なんかは、間違った使い方されたくないから、こんな感じでユーザーフォームのみを表示するようにしてます。

ユーザーフォームオブジェクトの種類は豊富で、ラベル・テキストボックス・コンボボックス・リストボックス等々、、、

ツールボックスに表示されていないものある⚙

そして、そのオブジェクトもコードで色々操作できる、、、

表示非表示・サイズの変更・座標の変更・フォントの変更等々。

工夫次第でユーザーを導いてやることができます。

だから別にさ、アプリケーションとかスプレッドシートいらんのよね。

勿論、計算結果はアプリケーションに表示させたりしますよ。

 

 

はい、そんな感じ。

ユーザー目線で考えると、加工とか操作するアプリケーションにVBAを直接記述するわけじゃなく、他のアプリケーションにVBA記述する手もあるよ。っていうお話でした。

ちなみに自分は、ユーザーフォームのClose時のイベントでアプリケーションも閉じてます📚

まあ、面倒だよね。。

でも、面倒なことするのが仕事なんだよ。。。

ってことで、またのん✋