浜松町で、以前お仕事を一緒にしていた会社の人と飲み会を開催した。ユーザー部門の方3人である。すべて年下の女性。そうなればオゴるしかあるまい・・。ある意味おいしい。かなりおいしい焼き肉屋であった。、お一人様8、000円と、財布にはおいしくなかった。


仕事の話を聞いたのだが、中盤からは。「男の選び方」「男遍歴と別れたときのショック度合い」「不倫の経験」など、おい、男が混じっていること忘れたのか?というレベルの話がじゃんじゃん・・。おっと、これではエロブログである。


そういう話の中でもの凄くヒントになるワードが2つくらいあった。さすがユーザー部門は観点が違う。授業料として考えれば安いかも。実のところ、その関係のビジネスは下火である、というより、見向きされていないだろう。その分野でやっていこうとも思えた。

さて、どういう育て方をしようか・・・・。悩みどころである。

仕事上、やはりWebシステムと呼ばれるものとの関わりが増えてきている。


主流はインターネットエクスプローラーなどのブラウザとの通信であるが、私自身はブラウザとの通信は機能制限があるため、あまり相手にしたくないl。まあ、ここがVBAのブログだということもあるが・・。



そういえば以前、Excelからhttpとhttpsでの通信を試みたことがある。これはこれでよかったのだが、結局は関数を呼び出して結果を値で貰っていたにすぎない。Excelらしく、リスト形式で取得したデータをシートに貼れるならもっといいだろう。



SOAPを使うのがいいのかな、という気でいたが、restの方が扱いやすいのかな、という感じである。

応用例は既に目鼻を付けてあるが、これからである。これなら別にairに走らなくてもいいのかな、と思っている。


クラスモジュール、というものがある。クラスって、何?それが多くの人の受け取り方だろう。さて、クラス、といって何を連想するだろうか?


飛行機の座席などもあるが、ここは小学校の「クラス」をイメージして頂きたい。


仮に同姓同名で、酒盛好子さんがいたとしよう。一人が1年2組、もう一人が1年3組だと、「2組の酒盛」「3組の酒盛」と、所属するクラス名で修飾することで区分けすることができる。


さて、VBA。標準モジュールなら別のモジュールに書きさえすれば、同じプロシージャ名やファンクション名を使えるか?答えは「両方のケースがある」となる。使えない場合は、両方ともPublicであるとき。使えるのはそれ以外のとき。

同じプロシージャ名やファンクション名で両方ともPublicでも、「どこのクラスの」という修飾子を付けて混在できる、というのがクラスモジュールの一つの特徴である。


つまり、どういつプロジェクト内で


標準モジュールの Module1 に


  Public Function getData(iVal as Integer) As Integer

    (内容省略)

  End Function


標準モジュールの Module2 に


  Public Function getData(iVal as Integer) As Integer

    (内容省略)

  End Function


とは書けないが、


クラスモジュールの Class1 


  Public Function getData(iVal as Integer) As Integer

    (内容省略)

  End Function


クラスモジュールの Class2 


  Public Function getData(iVal as Integer) As Integer

    (内容省略)

  End Function


は記述できる。


私の経験で散在しているVBAソースコードプログラムを1つのExcelブックに集めて部品として再利用したいな、という場合があった。

もし標準モジュールだとプロシージャ名やファンクション名が重複するとコンパイルでエラーが発生するが、クラスモジュールはモジュール名が重複していない限りはそのまま使える。

前者と後者では、後者の方が調査も変更もやりやすいのだ。


これはクラスファイルの特徴の一つだが、「クラス」は、まずはこのようなイメージで捉えると分かりやすいのではないかと思う。



※書き直し /八月末削除予定 /クラス

ブログトップへ
ブログ内検索キーワード
クラス
クラスモジュール