2013年2月25日月曜日

Windows 8:装飾記号の表示

下図はコメントでよく見るハートの記号U+2764・U+2765の表示です。


ブラウザはいずれもIE10(Windows 7はプレリリース版)です。
Windows 8では7と字形が異なり文字幅も縮んでいます。Segoe UI Symbolだと思います。一応インストールされているフォントでU+2764を持つものから字形を書きだしてみたところ:


以前に見たU+261Dと同じく、ひらがなに隣接させると8でもゴシックの字形に変化します。


SimSun・Gulim・PMingLiUにこれらの記号はありませんので、フォント変化が起きると代替表示となります。8では元のSegoe UI Symbol(と思われる字形)に戻ります。


上の図の「あ」はコメントのフォント状態を確認するために置いています。このケースでは「あ」がなくてもU+2764の字形は変わりません。

全部試したわけではありませんが、装飾記号ブロック (U+2700~U+27BF)の文字は基本的に上と同様の挙動を取るようです。字形の違いが特徴的なものをいくつか下図に示します。


Segoe UI Symbolで特に文字幅が狭いものは、複数並べると7との違いがかなり目立ちます。


なお一部8でしか表示されないものもあります。


上のU+2728はSegoe UI Symbolにしかありません。ゴシックにもありませんので、8で「あ」に隣接すると表示されるのはU+2764をSimSun化やGulim化させた時と同じ仕組みなのでしょう。7のSegoe UI Symbolにもこの文字はあるのですが、8のような仕組みはないらしく表示はされません。7の挙動は今後もこのままなのか、何かのアップデートで変わることがあり得るのか、気になります。

2013年2月19日火曜日

Windows 8:やっぱりスタートメニューを追加してみた

ソフトの互換性などで問題があるならともかく、新しいUIが不安・不満という理由でWindows 8を避けたり7にダウングレードしたりするのはもったいない気がします。Metroのスタート画面を初めて見た時は「ありえない」と思ったものの、それでも興味を持ったのはDP版の起動の速さと動作の軽快さに感激したからでした。

Windows 8 のパフォーマンス - Microsoft atLife

7と同様に起動したらデスクトップが開いて、スタートメニューが使えれば不安・不満も感じなくなるんでしょうか。自分は8にスタートメニューを追加するソフトなんていらないという話を以前に書きましたが、ちょっと下のソフトを試してみました。

IObit、Windows 8にスタートメニューを追加する「StartMenu8」の正式版を公開 - 窓の杜

インストールすると当たり前のようにデスクトップへスタートボタンが追加されました。


インストール後:


デフォルトでは起動時に自動でデスクトップが開くようになっています。設定で元に戻すこともできます。
Metroは無効にされているわけではなく、「Metroに切り替え」でスタート画面へ移動します。


Windowsキーでスタート画面とデスクトップがコロコロ切り替わっていたのを、かっちり使い分けるようになった気分です(Windowsキーは7と同様に上のスタートメニューを開くようになります)。
MetroはMetroでふつうに使えます。デスクトップの横にスナップさせているところ:


スタートボタンの右クリックからこのソフトの設定を呼び出すことができます。



8の操作に慣れているのであれば「Metroホットコーナーの無効化」 はオフにした方が使いやすいです。
なお「ユーザーインターフェイス」で「スキン」 を「Windows 7」に変更すると、上のメニューやタスクバーがAero Glass風の半透明に変わりました。

デスクトップのみ使っている限りWindows 7.5って感じです。見慣れたスタートボタンを置いただけで妙に安心感があるのは、おかしなもんだなと思いました。でもこれほんとに必要なのかと言ったら、実際は大して使わんのですけど。
やはりシャットダウンをチャームの中に閉じ込めてしまったのが失敗だったんじゃないでしょうか。コンパネなどは右クリックの管理用メニューに入れたというのに。

2013年2月14日木曜日

Excel 2013:Application.OnTimeの再帰呼び出し

自宅に2013導入したというだけで2010でも同じ話です。

Application.OnTimeというメソッドを使ったことがありませんでした。
ところが同じプロシージャを一定時間ごとに自動で実行させたいケースがあり、調べたらこのメソッドで再帰呼び出しをやればいいことがわかりました。しかしそんなかんたんにできるんだろうか。

Application.OnTime メソッド (Excel) - MSDN

例えば上のリンク先にあるサンプル:

Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"

これをmy_Procedure自体の中に入れて実行すれば、たしかに15秒毎に繰り返し呼び出されます。セルの編集中や他のプロシージャが実行中などに15秒後が来た場合は、実行可能になるまで待機します(待機時間に期限をつけるのが引数LatestTime)。

ただしこれだけでは問題があります。このブックを閉じてもExcelは15秒後にまたmy_Procedureを実行しようと、閉じたブックを開いてしまいます。EarliestTime=実行時間の予約は、Excel自体に対してかけられるもののようです。Excelを終了すればもちろん無効になりますが。

そのためにあるのがScheduleという最後の引数でした。EarliestTimeとProcedureを指定してScheduleをFalseにすることにより、Excelにかけられた実行時間の予約はキャンセルされます。
しかし上の例だとEarliestTimeであるNow + TimeValue("00:00:15")は、"my_Procedure"を実行するたびに更新されてしまいます。そこで最後のNow + TimeValue("00:00:15")を保存しておく必要があります。
わかりやすいサンプルコードがありました:

セルを点滅させる方法 - MSDN

上のリンク先のコードをブックが開いている間ずっと実行させたければ、Workbook_OpenでStartBlinking、Workbook_BeforeCloseでStopBlinkingを実行すればいいんじゃないかと。

一つ気になるのは最後のEarliestTimeを変数に格納している点です。ずっとブックを開いていたら、他のプロシージャでエラーが出た際などに変数はクリアされてしまうかもしれません。どこかのセルに保存しておく方が安全じゃないかと思いました。実際そのようにしてこのメソッドを利用していますが、特に問題なく動作しています。こんなかんたんなことならもっと早く知るべきでした。

2013年2月2日土曜日

Chrome 24/Windows 8:三角三様

特に目新しいことではないのですが、Chrome・Windows 7のIE・Windows 8のIEで表示が三者三様になるのがわかりやすかったので。下図は横向き三角U+25BA・U+25C4の表示を見ています。Gulim化を起こすU+25B6・U+25C0とはまた別の文字です。


「あ」 に隣接すると小さくなってます。理由はChromeで表示するとわかります。


要はゴシックよりArialの字形が大きい文字でした。しかし字形は似てるのに幅が大きく変わりますね。


今度はもう一つ似たようなU+25B8と、U+25BAの表示です。「あ」に隣接していると幅が若干違うだけで字形は大して違わないように見えます。


右の図はカッコつき16(U+2483)によってコメントをSimSun化したところです。どちらの三角もSimSunにはないので、これはフォントリンクによる代替表示です。こちらがWindows 8で変わります。


おそらくこれも、フォントリンクが使われずにSegoe UI Symbolで表示されるケースじゃないかと思います。


変化の大きさに差はあれ、同様の挙動をとる特殊文字は多いようです。むしろ表示が変わらない文字を探す方が難しいかもしれません。

ついでに前に書いたWindows 8の話の補足です。上のU+2483でSimSun化を起こすと、U+2639は「あ」をつけなくてもSegoe UI Symbolになりました。


フォント変化文字によってこのような差が出るのは、どうもSimSun化特有の現象のようです。ただしパターンはいまいちわかっていません。