2015年9月20日日曜日

[VBA]クラスモジュールのインスタンス生成タイミングについて

[はじめに]
VBAは、Javaや.NET系言語程ではありませんが、
オブジェクト指向をサポートしています。

Javaや.NETとの違いの1つとして、
インスタンスの生成タイミングがあります。
Javaや.NETの感覚でコーディングすると間違いに陥りやすいので、
備忘録として記載します。

[インスタンスの生成タイミング]
インスタンスの生成はJavaなどでは、
『New』を指定するとインスタンスが生成されますが、
VBAでは記載の仕方によって、
必ずしも生成されるとは限りません。

例えば、Javaの場合、
newを指定するタイミングでインスタンスが生成され、
その参照が変数に格納されます。
クラスモジュールのインスタンス生成タイミング_java.png
それに対して、VBAの場合は、
Newを指定したタイミングではインスタンスは生成されず、
その変数に初めてアクセス(メソッド呼出しなど)するタイミングで、
インスタンスが生成されます。
クラスモジュールのインスタンス生成タイミング_vba.png
インスタンス生成タイミングの検証として、
下記のコードを実行してみると以下のようになります。
もし、Javaや.NETと同じように
宣言時にインスタンス生成がされるのであれば、
出力結果は、
 (1)インスタンスをNew付で宣言します。
 (a)インスタンスが生成されました。 ★JavaやC#ならこのタイミング
 (2)これからインスタンスにアクセスします。
 (b)MethodA実行中
となるはずですが、
実際は次のようになります。
 (1)インスタンスをNew付で宣言します。
 (2)これからインスタンスにアクセスします。
 (a)インスタンスが生成されました。 ★VBAの場合、初回メソッド実行時
 (b)MethodA実行中
これは、宣言時にインスタンスは作成しておらず、
MethodAを実行する際に、インスタンスが生成していることを示します。

[VBAのコード]
Option Explicit

Private Sub TestA()
    Dim a As New Hoge
    Debug.Print "(1)インスタンスをNew付で宣言します。"
    Debug.Print "(2)これからインスタンスにアクセスします。"
    a.MethodA

    '実行結果
    '(1)インスタンスをNew付で宣言します。
    '(2)これからインスタンスにアクセスします。
    '(a)インスタンスが生成されました。
    '(b)MethodA実行中
End Sub
[VBA]インスタンスの生成タイミングの検証(Hogeクラスの呼出し側)


Option Explicit

Private Sub Class_Initialize()
    Debug.Print "(a)インスタンスが生成されました。"
End Sub

Public Sub MethodA()
    Debug.Print "(b)MethodA実行中"
End Sub
[VBA]インスタンスの生成タイミングの検証(Hogeクラス)
[その他]  VBAを例に説明していますが、  VisualBasic6(VB6)系の言語にも同様なことが言えます。

2015年8月30日日曜日

[Hardware's Review]SEIKO CLOCK (セイコークロック) デジタル ウィークリーアラーム

(1)レビュー
 目覚まし時計の調子が悪くなったので、新たに購入しました。
 指定した時刻にアラームが鳴ってくれさえすればよいので、
 特別な機能は求めていなかったのですが、
 価格の割に便利な機能が搭載されていたので、購入に至りました。

 最近は、スマホにもアラーム機能が搭載されているので、
 時計メーカーもいろんな工夫を凝らしているのかもしれませんね。

 【便利だと思った機能ベスト5】
 (1)アラームを曜日毎に設定できる。(設定も簡単)
    今までは金曜日の就寝前にアラームを無効にしたり、
    日曜日の就寝前にアラームを有効にする必要がありましたが、
    設定の変更が必要なくなりました。
 (2)午前と午後を区別できる。
    午前と午後を区別できないと、起床後にアラームを無効にしたり、
    就寝前にアラームを有効にする必要がありました。
    (1)と同じような理由ですが、
    設定の変更が必要なくなりました。
 (3)電池残量を通知してくれる。
    『気が付いたら時計が止まっていた』ってことがなくなります。
 (4)電波による自動更新。
    今となっては当たり前の機能かもしれませんが、
    時刻を修正する必要がありません。
 (5)温度と湿度を表示。(快適さも表示)
    なくても不便ではないですが、あったら便利です(笑)


(2)リンク

2015年3月1日日曜日

[Book's Review (Develop)]jQueryポケットリファレンス

(1)レビュー
 最近はGoogle等で検索すれば情報を得ることはできますが、
 まとまった本があればと思い1冊購入しました。
 リファレンスとしてももちろんですが、
 カテゴリ毎に順番に読み進めていっても面白いと思います。

 章立ては、
 第1章で、WebやjQueryの基本、
 第2章で開発環境について、
 第3章以降でリファレンス的な内容 
 の構成でまとめてています。
 
 あと、『Web制作の現場で使うjQueryデザイン入門』の書籍では、
 サンプルを紹介しながらの解説になっています。
 合わせて読むことをオススメします。

(2)リンク
jQuery ポケットリファレンス (POCKET REFERENCE)

jQuery ポケットリファレンス (POCKET REFERENCE)

  • 作者: 鶴田 展之
  • 出版社/メーカー: 技術評論社
  • 発売日: 2010/06/18
  • メディア: 単行本(ソフトカバー)

[Book's Review (Develop)]Web制作の現場で使うjQueryデザイン入門

(1)レビュー
 jQueryを扱う機会がでてきたので、購入しました。

 本書のサンプルファイルをダウンロードできるので、
 実際に動作させながらの確認ができます。

 JavaScriptやCSSの経験があり、jQueryをこれから覚えるWeb開発者にとって、
 1番最初に読む入門書だと思います。

(2)リンク
Web制作の現場で使う jQueryデザイン入門 (WEB PROFESSIONAL)

Web制作の現場で使う jQueryデザイン入門 (WEB PROFESSIONAL)

  • 作者: 西畑 一馬
  • 出版社/メーカー: アスキー・メディアワークス
  • 発売日: 2010/02/12
  • メディア: 大型本

2015年1月31日土曜日

[Tool's Review]ステンレスものほし台 ブロー台付き BD-50S 【ブロー台付きで安定性抜群・U型の竿受けで竿の取り外し楽々! 】

(1)レビュー
 最近、引越しをしました。
 ベランダの物干し竿を固定する位置が転居前よりも高く、
 身長が低い妻にとって家事がしづらいので、
 物干し台を購入しました。
 
 組み立て式の為、多少のぐらつきはありますが、
 実際使ってみても全く不便さを感じません。

 物干し台の土台の重りが、
 タンクに水や砂を入れるタイプなので、
 今後引越しすることになっても、持ち運びが楽になります。
 
 土台の重りの目安は、下記の通りです。

  ・水のみを入れた場合:16Kg×2=32Kg
  ・砂のみを入れた場合:22Kg×2=44Kg
  ・水と砂を混ぜて入れた場合:28Kg×2=56Kg

 砂を混ぜると、
 引越しの際に中身(砂&水)を抜く時が大変なので、
 用途に応じて使い分けるといいかもしれません。
 ちなみに我が家は『水のみ』ですが問題なく使えています。

 【ご参考】価格について (2015.1時点)
 渋谷の東急ハンズだと1万円近くでしたが、
 アマゾンだと5,500円でした。

(2)リンク

2015年1月15日木曜日

[Book's Review (Develop)]ASP.NET MVC 5実践プログラミング

(1)レビュー
 ASP.NETは、以下の2種類に大別されます。
 (1)ASP.NET Web Form
   .NET Framework1.0リリース時の頃から導入
 (2)ASP.NET MVC
   .NET Framework4以降に導入


 5年前まではASP.NETといえば、ASP.NET Web Formが主流でしたが、
 他のWeb系の言語(Java、PHP、Ruby等)と比べて異色な仕組みの為、
 初めてASP.NETを学ぶ人にとってはとっつきにくいものがありました。
 最近のWeb開発はMVCが主流になりつつあり、.NETもそれに合わせて
 ASP.NET MVCの仕組みが追加されました。

 本書はASP.NET MVCについて、
 基礎から応用までわかりやすく解説しています。
 
 これからASP.NET MVCを始める方にとって、貴重な1冊だと思います。

(2)リンク
ASP.NET MVC 5実践プログラミング

ASP.NET MVC 5実践プログラミング

  • 作者: 山田 祥寛
  • 出版社/メーカー: 秀和システム
  • 発売日: 2014/09
  • メディア: 単行本

[雑記]ドローン(DJI Mini 3)

(1)雑記 もともと多趣味の友人 masakazu Drone 氏が、 最近、 ドローン にハマり始めて、 更に、新たな趣味が増えたとのこと。 ドローン を始めてから、 まだ1年も経っていないとのことですが、 旅行先で山や川の景色を 空撮 して、 Youtube ...