| Excel2007でのVBAに挑戦 | [ プログラミング, 書籍紹介] |
VisualBasic.NETは散々使ってる割に、WordやExcel上でVBAを使ったことはありませんでした。
今回とある案件でCSV形式のログをあれこれ加工する作業が発生しそうなので、泥縄チャレンジ。
1からCSVファイルを扱うのを新規アプリで起こすより、Excelベースで必要な入力補助機能を追加してくのが良いかなと。
とりあえずExcel2007上でマクロを有効にする方法すらわからなかったので、上の本を購入。スクリーンショット付きで手順が解説してあって良かったです。おおまかなお作法がわかりました。まぁ、使い方さえわかってしまえば、コード自体はVBですもんね。
同じような表紙でも改訂前の2007対応前のものも店頭に残ってたりするのでこれから買われる方はご注意を。
二冊目は実践的なサンプル集という感じ。今回やりたかった、
を実現するにあたり、大いに参考になりました。これはアタリでした。
Excel上でカスタマイズしたUIが使えるってのは、今回の案件に関わらず色々役に立ちそうです。もっとはやく勉強すれば良かった。
| 自作ソフトでも使ってみたい、Vista & Office2007の新UIコンポーネント | [ インターフェイス, プログラミング, ユーザビリティ, 製品ニュース・レビュー] |
新しいもの好きなσ(^^)は、当然のごとくWindows VistaとOffice2007を導入していじくり回しているワケですが、たぶんどのパソコン雑誌も取り上げていない地味なUIコンポーネント、技術に目が行ってます。その中でも、たぶんVisualStudio2007(というか.NET Framework3.0?)辺りでは普通に自作アプリにも使えるようライブラリが搭載されそうで、早く使ってみたいものを紹介してみます(もしかしたらVS2005でも既に使えるかも?)。
写真はWindows Vistaのログオン画面です。パスワード欄に薄く「パスワード」と書いてあります。これは従来のHTMLのtextareaやinputタグにvalue値で指定するデフォルト文字列とは違って、テキスト入力を開始すると自動的に消えてくれます(フィールドを空にしてフォーカスを離すとまた出てくる)。その欄に何を入れれば良いかを、入力の邪魔にならない形で提示することができるんですね。微妙に色が薄いのがポイントです。おそらく、テキストフィールドのプロパティとして文字列を設定しておけば、Vistaでは自動的に表示してくれるんでしょう。
個人的にはもう少し色が薄い方が紛らわしさが減る気がしますが、Microsoftのことなので、色々検証した結果、ユニバーサルデザイン的に視認性を確保してこうなったのかも知れません(あるいはこれもプロパティで色指定ができるのかも)。
こちらはExcel2007で図形オブジェクトを右クリックした状態です。従来は「順序」メニューのサブメニューに位置していた「最前面へ移動」がトップに来ています。実はこれ、クリックできるんです。つまり、「前面に移動」系のサブメニューへの入り口でありながら、単独項目としても機能するメニューなワケです。コンボボックスならぬコンボメニューとでも呼ぶんでしょうか?(ファーストフードみたいだ)心ニクいのは、従来のやり方に慣れた人がクリックできることに気づかなくても、ちゃんと「最前面に移動」はサブメニュー内にもあるってところですね。従来の操作も踏襲しつつ、よく使う項目はショートカットできるといういいとこどりです。こちらも色々使い道がありそうです。
Windows Vistaでは一部のセキュリティ警告時のモーダルダイアログ(それを消さないと他の操作ができなくなるダイアログ)を表示する時に、それ以外の背景部分に半透明黒のマスクがかかるようになりました。無理矢理にでも意識させたいダイアログを出す時には有効ですね。実際高齢者などはダイアログに気づくのが遅れたりしますし。ただこれはシステムレベルの警告ダイアログの特権で、一般アプリケーションでは使わせてもらえないかも知れないですね(自分で実装する手はあるかも)。
Windows VistaやOffice2007はAeroやリボン、リアルタイムプレビューといった派手目な新機能ばかりが取りざたされていますが、すごく細かいところも色々改良されています。例えば、こちらの写真はファイルアイコンのファイル名部分をクリックして名称変更しようとした状態です。なんと拡張子が反転から除外されています。これは拡張子表示派の人には嬉しい改善ではないでしょうか。思わず久しぶりに使いやすさ日記を執筆したくなっちゃいました。
全体的に眺めてみて、Windows VistaもOffice2007も、たくさんある情報を効率良く扱う為の改良が進んだな、という印象です。例えばOfficeでは、今まで割と使うんだけど、やけに奥深い階層にあった機能(Excelの「折り返して全体を表示」とか)がワンクリックで実行できるところに浮上してきたりと、痒いところに手が届くようになった感が強いです。皆さんも機会があれば是非体験してみてはいかがでしょう。
| VistualStudo2005にWindows標準アイコン集が入ってました | [ プログラミング] |
Visual Studio 2005 Image Library [microsoft]
現在開発中の新ユーティリティで、ツールバーUIを採用してみたんですが、メニューと違ってアイコンが必要になるので困っていました。
そんな折り、ふと2ちゃんねるで知ったのですが、VS2005にはWindowsやOfficeで見かけるアイコンがZIP圧縮で付属しているようです。
標準のインストールパスなら、
C:\Program Files\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary\VS2005ImageLibrary.zip
がそれです(Standard Editionで確認)。
これはかなり助かりますね。自分でアイコンが描けるプログラマってのもあまりいないでしょうし、Microsoft的にも、Windowsアプリの外観に一貫性を持たせられて両得でしょう。
VS2005はいいです。My.settingクラスの実装でアプリケーションの設定を保存する処理がものすごく簡単になりましたし。
無料のExpress Editionもあるし、良いアプリケーションを誰もが作れるようにすることで、OS自体の価値を上げてくという戦略は至極真っ当で良いですね。
| dg Itsu-deru Converter Ver.1.0公開 | [ プログラミング] |
久しぶりにプログラミングをしました。VisualStudio2005初利用です。
内容的には超ニッチですので、メリットを享受できる人は世界に15人くらいしかいないと思います。
人向けのツールです。Windows向けの購入予定書籍管理ツール「BookCheker」でネット上の新刊情報を取り込み、購入予定のものをチェックした後、CSV形式でエクスポートできるんですが、それをItsu-deru形式に変換し、PalmDesktopに貼れるようクリップボードにコピーするツールです。
Itsu-deruは登録しておくと、予定表にも同期して発売日にスケジュールとして表示してくれるので非常に便利で、PalmOS搭載PDAを使い続けるキラーアプリの1つです。今までは、同じくItsu-deru形式出力に対応した「こっみくす感想日記」さんを活用していたんですが、ComicChekerであれば一度買ったことのある作者の新刊にフラグをつけてくれるし、検索機能などより便利な機能が満載です。
ところで、VistualStudio2005を初めて使ったんですが、これは良いですね。デザイナーのレイアウト補助機能も便利だし、例外エラーが出た時のヘルプも随分親切になりました。VisualBasic.NET2003からの移行でしたが、マニュアルは一切みずにスンナリ使えました。まぁ、やってることがごく簡単だからってのもあるでしょうが。つーか、こんなごく簡単なアプリで.NET Framework 2.0必須でごめんなさい、ってカンジです(^^;)。
| ビデオデータの切り出し機能 | [ プログラミング, 道具眼製ツール] |
今日はmixi内のコミュニティ“ユーザビリティの会”のオフ会でした。
その場で、動画眼を試用してくださったKさんから、「動画の一部分を切り出すような機能があるとウレシイ」みたいな要望をいただきました。その時は、「動画ファイル自体に手を入れるのは深みにハマるからそれは難しいな†。あんまり触れたくない部分だなぁ...」と思ったりしたんですが、ふと帰りの電車の中で「案外イケるかも!」という気がしてきました。
例によって、既存のツールを流用するアプローチです。既にあるものは利用する。それが道具眼流(笑)。
ffmpegというオープンソースのエンコーダーがありまして、コイツはコマンドラインで色々なパラメーターを指定して様々なフォーマットで動画を変換することができます。コマンドラインでオプションを渡せるので、例えば動画眼のログから、バッチファイルを生成できれば、後は半自動で指定範囲を別ファイルに切り出したりはできるはずです。
実は、先日hkondo氏からGrabFrame.DLLというライブラリを教えてもらって、これを組み込めば少なくとも.AVI形式のファイルに関しては簡単に静止画キャプチャはできそうだね、という話をして、実は開発版に試験的に組み込んでみたりしてました。が、このライブラリではMPEG2形式の動画から切り出すことはできず、限定的な使い方になるなぁ、と思ってました。しかし、ffmpegであればタイムコードを指定して特定フレームをJPEGなりに書き出すことはできるはずなので、静止画書き出しの問題も一挙解決?
うん、それでいってみよう。なんでもかんでも動画眼の機能として内容する必要はない。動画眼のログから、ffmpegで一括切り出しを指示するバッチ(マクロ)を生成する、みたいなアプローチで。ffmpegならGPLだから動画眼と一緒に配布しても多分問題ないはずだし。
というわけで、このヒラメキ(?)のための良いきっかけをくれたKさん、ありがとうございました。何かしらの形になったらお知らせします。
| Konfabulator Windows版 | [ プログラミング] |
ネット上の情報をデスクトップに常駐表示させるようなJavaScriptベースのミニアプリケーションを簡単に作成できる、MacOSX向けのプログラミング環境Konfabulatorというのをご存じでしょうか?上記リンクを辿っていただくと、カッコいいデザインのwidgetと呼ばれるルール群が観られます(トップの他に右上の「Gallaery」からも一般ユーザが作成した無数のwidgetが見られますよ)。
で、これのWindows版がリリースされたようです。これはチャレンジするしか!と思っています。なにかアンビエント系の情報提示インターフェイスを作れたらと思います。
| 離れた友人と一緒にビデオ鑑賞 | [ プログラミング] |
幸か不幸かこの月末は仕事があんまり入ってないので、久しぶりに週末プログラマー化してみました。
例によってニッチ突きまくりの、マニアックなテーマです。遠くの友人と同期ビデオ視聴をする際の支援ツールです。離れたオフィスの仲間と電話で話しながらユーザテストのビデオ(動画ファイル)を分析したり、遠距離恋愛中の恋人と一緒に借りてきたDVDを観たりなんて時に、「せぇの!」で再生ボタンを押す手間を無くしてくれます。
元々動画眼の機能として実装を考えてたんですが、Webベースでやれば簡単な気がしたので方針変更しました。夜中にhkondo氏とチャットしていて、時刻情報をテキスト化してメッセンジャーでやりとりすれば、通信機能を実装しなくて良いし、ファイアウォール越えの問題も考えなくていいよね、ってことになり、寝て起きて勢いで作ってみました。
仕組みは単純で、招待主が「3分後にAというファイルを観る」という情報をサーバーに送信します。サーバーは「3分後」という情報を時刻に変換し、その時刻に再生開始するようタイマーをセットしたWindowsMediaPlayerコントロール入りのWebページを生成します。そして招待者はそのアドレスを一緒に観たい人にメールなりメッセンジャーなりで知らせます。招待された人はそのアドレスにアクセスし、同一ファイルの自マシン上でのパスを指定すると、やはり同時刻にタイマーセットしたWebページが表示されます。サーバーの時刻を元にしているので、お互いのマシンの時計がズレていても、ページを開くタイミングが同時でなくても問題無いという点がポイントです。
動画データをやりとりするワケではないので、お互いが同じファイルやDVDを所持していることが必要です。WMPで視聴可能なストリーミング・コンテンツも利用可能です。
もうすぐ3rdシーズンがリリースされる『24』のようなリアルタイム性が高い作品の興奮を、遠くの友人と同期して味わえたら良いな、と思って作ってみました。
現在は先頭からの再生開始にしか対応してませんが、実際は電話やトイレで中座した時とかに、同じ再生点から再開できてこそ価値がありますよね(かけ声方式では、一時停止も同時にしとかないと、「せぇの」では再開が出来ないので)。ビデオ分析作業なんかでも、「ちょっとこのシーンをもう一度観てみてよ」なんて時には、口頭でタイムインデックス値をやりとりなんてしてらんないですしね。
その辺も早急に実装してきたいと思います。
P.S.
視聴中のおしゃべりはSkypeがオススメですよ。各種メッセンジャーのボイスチャットとは音質が段違いです。
| WikiにGUIフロントエンドがあったら,,, | [ プログラミング] |
某友人の最近の仕事を聞いてインスパイアされたんですが、WikiにWindowsやMacネイティブなフロントエンド・アプリがあったら良くないですか?
専用アプリがなくても、ブラウザだけで読み書きできるのがWikiの良いところではあるんですが、やっぱり整形ルールとか敷居が高いと感じる人も少なくないワケで、せっかく情報共有ツールとしての素地の良さが、一部使えない人がいるってだけでオミットされちゃうのってもったいない気がします。
ワープロ・ライクなWYSIWYG(死語?)ツールがあって、そこで編集すると、裏でWiki整形ルールのテキストを吐いてサーバーに送信してくれる、みたいな。整形ルールが書けるユーザだってその方が楽は楽ですよね?たまたまそういうツールが入ってないマシンからアクセスする時はブラウザ“でも”読み書きできます、っていう考え方です。大事なのは誰でも気軽にコンテンツを追加したり改変したりできるってことで、HTMLブラウザなんてしみったれたユーザ・インターフェイスに囚われる必要は全くないワケです。
あっ、2ちゃんねると2ちゃんねるブラウザがあるように、PukiWikiあたりにはそろそろ登場しても良いですよね。
ざっとググってみたんですが、とりあえず日本語では見つかりませんでした。Flashを使うというアプローチはあるみたい。MovableTypeみたいに、編集欄の外に「太字」ボタンみたいなのを置いてJavaScriptで選択部分を「''」で囲む、みたいな実装方法ならブラウザ上でもできますが、やっぱり理想はユーザから整形ルールが見えない(意識させない)形でしょうねぇ。
どう?やってみない?>最近VB.NET買って面白いテーマ探してる某友人
| Webでもラジオボタンの文字ラベルをクリッカブルにしよう | [ プログラミング, ユーザビリティ] |
出てるところでは散々既出でしょうけど、JavaScript小ネタをば。
ラジオボタンは、デスクトップOSのGUIでもHTMLでも一般的な選択ウィジェットです。しかし、Webの上で使われるHTMLフォームのそれには、やや不便な点があります。それは文字ラベル部分をクリックして選択することができない点です。
先日、とある制作業務の中でこの不満をなんとかしてやろうと思い立って、以下の方法を編み出した(?)でご紹介します。
下の例を触ってみて下さい。一般的なINPUTタグの書き方だと、文字の部分をクリックしても何も起こりません。
これに、以下のようにJavaScriptを書き加えると、
すると、ほぅら、
Windows上のアプリと同じように、ラベルをクリックできるようになりました。クリック反応エリアが広がるので、ユーザが項目を選択するのがグンと楽になります。
UL&LIタグを使わない場合は、文字ラベル部分をSPANタグあたりで括って、そこに書けば良いでしょう。ポイントは、同一のnameがついているラジオボタンを、[0]、[1]のように呼び分ける点ですね。
そういえば、最近いつのまにかGoogleが対応したみたいですね。ソース読んでないので、どういう方法で実装したのか不明ですが。きっとブラウザ汎用性とか研究しつくした上での実装だろうから、このやり方よりも洗練されてる予感。まぁ、実装方法はどうあれ、広まっていって欲しいですね。
ロックマンさんより、JavaScriptを使わなくてもLABELタグで同じことを実現する方法をご指摘いただきました。コメント欄もお読み下さい。
| PukiWikiのコメント欄の名前を記憶 | [ プログラミング] |
ウチではスタッフ内部のやりとりにPukiWikiを使わせていただいています(一応公開Wikiスペースにも使ってますが、あまり活用されてない...)。そのコメント機能に、毎回名前を記入するのがメンドウでした。そこで、標準プラグインのcookieプラグインを試して見たんですが、Operaで文字化けしてしまいました。ウチでは再現してませんが、Safaliで書き込みできなくなったとの知らせも。このプラグインではJavaScriptを使ってcookieの読み書きをしてるようなんですが、どうもその再のURIエンコード処理に問題があるらしい。多くのブラウザはURIエンコードに関するJavaScriptの実装に欠陥や互換性の問題があるらしく、いまいち「これでOK」的な解決策がナサゲ。
それでは、ということでPukiWikiのPHPコードを直接いじって自前でcookie対応してみました。以下、覚え書きです。超手抜きですが、とりあえずJavaScript使うよりはブラウザ依存度は低いかと。
超手抜きですが、とりあえず動いています。問題などありましたらお知らせ下さい。
いやぁ、毎度ながらオープンソースって素晴らしいですね。