« 2008年1月 | トップページ | 2008年3月 »

2008年2月

2008年2月23日 (土)

Gnumeric 1.7.x for Winで印刷ができない

最近気づいたのだけど、Windows XP上でGnumeric 1.7.10, 1.7.12 for Windowsで印刷ができない(2台のPCで確認)。ファイルメニューのPrintを選ぶと、印刷のダイアログも出さずにGnumericが落ちてしまう。Gnumericで印刷する事は無いから取り立てて困らないのだけど、英語環境なら問題無いのかな? 今までGnumericから直接印刷した事が無かったので、全然気づかなかった。

たぶん私が使っているマシンの問題だと思うけど。Adobe Reader 8.1も、環境設定を呼び出して何か変えようとすると落ちてしまう。こちらの方は同じマシンに別のアカウントでログインすると問題なく変更できるのは確認しているので、私のアカウントで常駐させているソフトのどれかが悪さしているように思う。ひょっとするとGnumericの方も同じものが原因かも。今度時間がある時に調べてみよう。

 

ちなみにMac OS X版のGnumeric 1.8.1は少なくと印刷ダイアログまでは出る。実際に印刷はさせていないので本当にプリンタに出力されるかどうかわからないけど (^^;) いや、多分出ると思うけど。

2008/4/13 追記
解決〜 (^^;)

| | コメント (0) | トラックバック (0)

2008年2月16日 (土)

ルータが壊れた

ルータが壊れてしまった。前日の夜までは普通に動いていたのだけど、朝になったら電源が入っていない。ACアダプタの出力は正常。NTTのWeb Caster 700で、約4年間使ったのだけど壊れるのが早いな。

導入当時はネットに接続したいパソコンが3台あったので迷わずルータを入れたのだけど、その後老朽化や故障で脱落者が続出し、今ネットに接続したいパソコンは1台のみ。いや、もう1台接続能力のあるパソコンがあるけど、性能の面でつないでも役に立たない。昨年の夏に今現役のデスクトップと互角の性能のノートが潰れるまでは、ルータの下に無線LANのアクセスポイント経由でノートとプリンタとAirMac ExpressとたまにHDDビデオがぶら下がっていたのだけど。

とりあえずネット接続の必要がほとんどないビデオと、最近出番が少ないAirMac Expressは目をつぶってデスクトップを直接回線終端装置に接続する。PPPoEの設定をしてネット接続完了(もちろんOSのファイアウォールは有効にしてある)。プリンタはUSB接続に変更。

Web Caster 700と同機能のルータなら5000円もしないで手に入れられるのだけど、いっその事新しいノートと一緒にDraft 802.11n対応の無線ルータを買った方がいいかも。

NTTに電話して聞いたら、持ち込み修理でもNTTからメーカーへ送って修理するので、通常の電気製品の修理と価格は変わらないらしい。という事は、数千円の技術料(サービス料)+部品代数千円か? ちなみに出張修理に来てもらうとさらに4500円の上乗せらしい。ということで、修理しない事に決定。

当面の問題としては、うちのプリンタがUSB接続ではClassic環境には対応していないということ。たしか製品の説明にClassic環境には対応していません(Mac OS 9には対応)とあって、LANでつないでいたときはちゃんと使えていて不思議に思っていたのだけど、USB接続ではだめだという事だったようだ。私はClassic環境は使っていないので全然困らないけど、妻が困るだろうな。ま、しばらく放っておこう。「必要になったら買えばいいじゃん」と言ったのは妻だし (^^;)

| | コメント (0) | トラックバック (0)

2008年2月 9日 (土)

不安定なExcel VBAマクロの作り方

日頃仕事でExcel 2003のVBAのマクロを沢山作って使っているのだけど、どうにも不安定なマクロがいくつかある。そのマクロがあるファイルを開くと頻繁にExcelが落ちるのだけど、どうもオブジェクト型変数を使っているものが怪しい感じ。

今まではオブジェクト型変数を関数内で宣言して使ったあとはそのまま放置して関数を抜けていたのだけど、関数から抜ける時にその変数にNothingを代入するようにしてみたら安定して動作するようになった。

よく考えてみると、たぶんこういう事ではないかと。

Dim xx As Object

として宣言したオブジェクト型変数は、使用時に

Set xx = Workbook.Add

などのようにSetステートメントを使って使用するオブジェクトを割り当てる。ExcelのVBAのヘルプなどを読むと、オブジェクト型変数そのものはオブジェクトを参照するためのアドレスを格納する変数で、Setでオブジェクトを割り当てた時に、オブジェクトの情報を格納するためのメモリ領域を確保して、そのアドレスがオブジェクト型変数に格納されるという事らしい。

問題なのは、何かのオブジェクトを割り当てたままその変数が宣言された関数を抜けてしまうと、オブジェクト情報を格納したメモリ領域が残されたままでオブジェクト型変数だけが削除されてしまうことが起こるらしいことである。VBAが丁寧なメモリ管理をしていてくれたら、こうして参照されなくなったメモリ領域も解放してくれるのだけど、Micro$oftの作るものなのでそんな事を期待してはいけないのだろう。したがって、オブジェクト型変数を宣言した関数を抜ける前に

Set xx = Nothing

として何も参照していない状態にしてオブジェクト情報を格納したメモリを解放するのがVBAを使う人の責任、という事になるようだ。Cなんかだとmallocなんかで確保した領域はきちんと解放してあげるように意識するのだけど、VBAだとついその辺がルーズになってしまう (^^;)

オブジェクト型ではこうした問題があるのだけど、動的配列やVariant型の変数だとどうなんだろう? 今までは何も気にせずそのまま関数を抜けていたけど、ちょっと気になる。

動的配列の場合、最初にDimステートメントで宣言するときはその型の変数を参照するためのポインタが作成されるだけで、後でRedimステートメントでサイズを指定した時に実際にデータを格納するための領域が確保され、その先頭アドレスが変数に格納される。したがって、関数を抜ける前にEraseできちんと記憶域を解放しておく必要があるような気がする。そのくらいVBAの環境が処理してくれないかなあ。一応念のために、

Dim xx() As Double
Dim n As Long
...
Redim xx(n)
...
Erase xx

というように最後にEraseを追加。

Variant型は入れるデータによって使用するメモリサイズが変わるとヘルプにあるので(長い文字列や配列まで入っちゃうし)、こいつもどこかにデータを入れるための領域を確保して、Variant型の変数自身にはそこへのアドレスが格納されるだけという形のように思える。とすると、Variant型も最後にEmptyかNullを放り込んで記憶領域を解放する必要があるんだろうか。そういう記述はあまり見た事が無いので、これこそVBAの実行環境が勝手に処理してくれているんじゃないかと思うけど。そもそもVBAはデフォルトでは変数の宣言を強要しないし、変数の宣言をするにしても型名をつけなくてもOKな仕様で、どちらの場合も変数はVariant型として宣言されていると見なされる。こういう仕様なので、Variant型に対する取り扱いぐらいはちゃんとやっていると思うのだけど、M$製品は油断できないからなあ。

| | コメント (1) | トラックバック (0)

2008年2月 8日 (金)

Firefox 2.0.0.12リリース

Firefox 2.0.0.12がリリースされた。2.0.0.11で見つかったセキュリティの問題と安定性向上の対応。

いつもダウンロードしているPPC7400最適化版はさすがにまだ出ていない。

Caminoの方は1.6β2が出ているけど、ひょっとしたら1.5.5が出てしまいそうな気配がある (^^;)

2008/2/8 22:18追記
ということで、Camino 1.5.5もリリースされた。たぶんFirefox 2.0.0.12と同じく前のバージョンの不具合を修正したGecko 1.8.1.12が使われているはず。ちなみに1.6β2は1.8.1.12preだった。

2008/2/10 追記
lzycさんのFirefox lzyc build(G4, G5, intel各最適化版)に2.0.0.12が登録された。

2008/2/17 追記
Camino 1.5.5とFirefox 2.0.0.12のPowerPC G3, G4 7400, G4 7450最適化版がこちらに。SeaMonkyの1.1.8も。ここのは英語版なので、Firefox 2.0.0.12は日本語のxpiファイルをダウンロードしてインストール。インストールは、ダウンロードしたja-JP-mac.xpiをabout:configしてgeneral.useragent.localeをjaに。
Camino 1.5.5の最適化版は本家サイトのマルチリンガル版をダウンロードし、以前書いたやりかたで日本語リソースをコピー。

| | コメント (0) | トラックバック (0)

2008年2月 3日 (日)

Gnumeric 1.8.1のインストール

Macportsにgnumeric 1.8.1が登録された。さっそくインストール。

gnumeric 1.7.12がインストールされたところから、gnumeric 1.8.1をインストールしようとしたら、configureしている時にいくつかのライブラリが古いというエラーが出た。grumeric 1.7.12は2007/12頃のインストールだったかな? インストールされているバージョンをみてみると、gofficeが古かった<-0.5.5以上を要求されているのにインストールされているのは0.5.0だった。現時点の最新版は0.6.1なのでこれをインストールする。続いてgnumeric 1.8.1もインストール。

ということで無事インストール終了。ちょっと動かしただけだと、1.7.12と変わらない感じ (^^;) 動作も相変わらず軽い感じでよろしい。Pantherで日本語入力できないのも相変わらずだが。

グラフを作成する時に、ドラッグして指定したグラフ領域を正しくgnumericが受け取っていない事がある。一旦作成したグラフをリサイズするのは問題無いのだけど。

Macports 1.6.0は相変わらずうちのPantherでは1.5.2からのselfupdateではビルドできない。今のところ困ってはいないけど、いつか困る事になるんだろうなあ。

| | コメント (0) | トラックバック (0)

2008年2月 2日 (土)

Safari for Windowsで画像が緑に

数カ月前から、Safari for Windowsで画像に緑色がかぶって表示されるものが出るようになってしまった。
さらに、先日Firefox 3.0β2でカラーマネージメントを有効にしたら、画像が緑になるだけではなく文字がピンクになったり、全体に色がおかしな感じになってしまった。今までは問題のマシンにインストールしたSafariの問題だと思っていたのだけど、SafariだけでなくFirefoxもとなるとWindows側の問題という事になる。

結局、画像のプロパティ/設定の詳細設定/色の管理で指定してあったモニターのカラープロファイルが壊れていたのが原因だった。モニターのメーカーサイトからカラープロファイルをダウンロードし(元々インストールしてあった物と同じ物だったが)、画像のプロパティ/設定の詳細設定/モニタ/ドライバの更新でインストールした。

Safari for Windowsはカラーマネージメントが元々有効になっているそうで、SafariやFirefoxが参照したモニタのカラープロファイルが壊れていたため画像の色がおかしくなった模様。カラーマネージメントについてはいろいろなサイトで解説されている。私が参考にしたのはこちら。Firefox 3.0でカラーマネージメントを有効にする方法も書かれている。

| | コメント (0) | トラックバック (0)

« 2008年1月 | トップページ | 2008年3月 »