素人がExcelVBAによる「一人働き方改革」に挑むブログスマートフォン用の表示で見る素人がExcelVBAによる「一人働き方改革」に挑むブログExcelVBAネタです。Win64/32API利用WindowsAPIの関数をラップするクラスを作ったらメッチャ便利だったタイトル通り。Handbook』で紹介されていたテクニックで、ちょっとやってみたら便利だったというだけの話。さんもthom.hateblo.jp紹介しておられる。WindowsAPIの関数をクラスに封印するクラスモジュールを挿入して、テキトーな名前をつける。私は「WindowsAPI」という何のひねりもないそのままやんけなネーミングにしている。VB_PredeclaredIdの値をTrueにしておく。VB_PredeclaredId」については、akashi-keirin.hatenablog.comコチラをどうぞ。最近、IE操作関係でWindowsAPI関数を使うことが多いので、手始めにGetTickCountとSleepをクラスモジュールに封印してみる。VB_PredeclaredId」の値はTrue。Subそれぞれコード中の(1)~(4)に記した通り。Long)はおなじみのアレ。いづれもPrivate指定にして、直接外から呼び出すことができないようにクラス内に封印している。(2)、(3)は、GetTickCount、Sleepを呼び出すためのメソッド。あと、(4)は、コメント通りGetTickCountとSleepを組み合わせて、引数で渡した時間だけ待機するメソッド。単純にDo~Whileでループさせるだけでなく、ループ中にSleepをかましているところがミソ。こんなふうに複数のWindowsAPIを組み合わせた処理を簡単に利用できるようにすることができる。使ってみる次のコードで実行してみる。WindowsAPI.waitFor(1000)と書けばメソッドの利用ができる。ここでは、GetTickCountとSleepを組み合わせた自作のwaitForメソッドを使っている。Doループの中でこのメソッドを呼び出すことにより、1000ミリ秒(メソッド内でSleepを引数1で実行しているので、正確には1001ミリ秒+α)ごとにイミディエイト・ウインドウに、文字列を出力し、ループを抜けたところで再度しばらく時間をおいて文字列を出力することになる。おわりにめんどくさいWindowsAPI関数の利用が、非常に簡単になると思った。ご心配をおかけしました。»プロフィールid:akashi_keirinExcelVBAネタです。SyntaxHighlighter.all();注目記事はてなブログをはじめよう!akashi_keirinさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。