2015年1月5日月曜日

プログレスバーを使おう

大昔に、UserFormのラベルにFunctionで計算した数値から導き出した個数の図形を入れて更新し…という方法を覚えた”プログレスバー”。

しかし最近医調べるとどうやら公式コントロールが存在するという話。

White Tiger - ユーザーフォームに進行状況を表示する方法


うん、リンク先見れば一目瞭然ですね。

実際に使うときには、行数を取得するなど、処理の最終値を実際のものにする必要がありますが、何がすごいかって、Excel 97でも使えるというのが驚き。10年もシェイプの描き変え処理と格闘してきたあの日々は一体何だったのかと言うアレです。


それでも、ってんで一つ補足しておきますと、このコントロールを利用する際のキモは「Application.DoEventsメソッド」です。
…正直これもVBAのヘルプ見ればわかるんですけど(笑)、そこから引用すると以下の通り。
「発生したイベントがオペレーティングシステムによって処理されるよう制御を戻します。」
ということで、プログレスバーコントロールの値を再設定する際にDoEventsすることで再描画するわけです。これやらないと、画面が真っ白に固まったような状態が続いた後正常に戻ったときにはもうプログレスバーなんてどこにもなかった!なんてことになります。


あ〜これでやっと延々と行われる処理をいつ終わるかとモニタの前でどら焼き齧りながら待っているような真似をせずとも良いわけです。よかったー。

2015年1月4日日曜日

Linuxbeanのスリープ復帰後マウス問題

明けましておめでとうございます。

前回の投稿から約五ヶ月経ってしまいました。



さて、表題の件ですが、前々から…それこそ前回Linuxbeanをインスコしてたときから気になっていたんですけど、今回ググったらいい記事がありました。昨年の5月に書かれたエントリだったので、それまでは調べても出てこないわな。ということでリンク貼っときます。


linuxbeanでACアダプタに繋いでいない時にでもマウスを有効にする|zauberkraft

(http://zauberkraft.blog135.fc2.com/blog-entry-17.html)


実際問題リンク先見ていただけばわかるんですが、割とそちらがそっけない書き方なので補足。
  1. スリープする前に(USBマウスが動作してる状態で)、[$ lsusb]でデバイスのIDを取得しておく。
  2. IDの次に記述されているデバイス名で、マウスを見つける。自分の場合は"Logitech, Inc. V220 Cordless Optical Mouse for Notebooks"なんて書いてありました。
  3. 2の"ID"以下にある "xxxx:xxxx" で表現されているIDをコピー。
  4. Leafpad等で "/etc/laptop-mode/conf.d/usb-autosuspend.conf" を開く。[$ sudo leafpad /etc/laptop-mode/conf.d/usb-autosuspend.conf]とかやると楽。勿論viとかで開ける人はそちらでどうぞ。
  5. "AUTOSUSPEND_USBID_BLACKLIST=" という文字列を探し(多分39行目あたりなんだろうけど、検索しましょう)、コピーしたIDをペースト。あとは保存すればOK。
こんな感じ。

もうちょっと設定ファイルとかのこともわかるようにならなきゃいけないなあと思いましたマル。