2015年3月31日火曜日

Excel VBA SDIに悩まされる

一年越越しで抱えていたトラブルが解決した。
実機(顧客から預かったパソコン)で開発してそのまま納品した後、改善要望や不具合の報告があって対応してきたが、自分のパソコンで再現できず、運用上は問題無く、管理画面での不具合のため導入が進み、原因はこちらで推察して対応していた。

【結論】
  • 客先の実機は、Eccel 2013 + Windows8.1
  • こちらは、Excel 2010 + Windows8.1 または Excel 2010 + Windows7
  • 不具合の症状は、「ファイルを開く」操作が入った後、許可されているはずのシートの特定セルが編集できない」というもの
  • 「Excel 2013 でモーダル ダイアログから開かれたブックのメニューバーやリボンの操作ができずウィンドウを閉じることができない」 とMicrosoft Support に発表されている内容に起因し、対策も示されている
  • Excel 2013 からSDIになったことでこの不具合が出ているようだ
  • Excelバージョンの違いで、こちらの環境では再現しない
【対策の経緯】
  1. 不具合の症状は、見えないところでモーダルフォームが開いている感じ
  2. モーダレスとモーダルフォームが混在していたので、モーダルフォームへ統一し、必ず閉じるように大改造
  3. この改造でも不具合は解消せず、Excel 2013 のSDI とこの不具合が影響していそうだと思い至るまでに時間がかかった
  4. Microsoft Support に記載の対策が「モーダルフォームで一旦開いて」というものだったので、逆に全てモーダレスフォームにして解決(シートのセルや配置したボタンにアクセスできないよう対策が必要)
【ネット情報】

  • 今回は、現象と原因が直接結びつくような、ネット情報を見つけられなかった
  • これまでExcel VBA プラス キーワードでネット検索していたが、Excel 2013特有の問題があることが分かり、これまでお世話になってきた「VBA講座」とはまた違ったサイトを知ることが出来た

2015年3月21日土曜日

Excel VBA 意味不明なコンパイルエラー

Enum で定義されているはずの定数が、「定数式が必要です」というエラーダイアログが表示されてプログラムが実行できなくなった。初めての事。(Excel2010)
宣言文から、Private Enum の Private を外したら出なくなった。関係のない個所に変更をくわえたりした後、試しに元に戻してみるとエラーにならない。出たりでなかったりを繰り返した。
出荷後のバグ対応、要望に基づく変更の最中でバージョン管理用文書になんて書けばいいのか、コメントに残しておくべきなのか困った事に。
ぐぐったら、同症状の報告有り、エディタのバグとある。

2015年3月14日土曜日

Windows7 DVI の不具合/Windows Update絡み?

2015年3月のWindows Update の不具合顛末記
  1. 3月12日の夜、別件のダウンロード中に、「ロック」状態にしたら、画面がまっ黒で、マウスカーソルだけが出ている状態になる(マウス操作可、キーボードは無効)
  2. 2時間後くらいに戻って操作するも、2の状態のままなので、電源ボタンで強制オフ
  3. 翌朝、Windows 起動ロゴの表示後、まっ黒でマウスカーソルだけ有効な状態で停止
  4. 並行してた Windows Update を疑い、「アップデートの失敗」を調べ、試してみる
  5. ブルー画面で起動を繰り返したり、「復元」も失敗したりで、いよいよOS再インストールを覚悟
【原因は】
使っている 三菱ディスプレイ RDT233WLM の DVI コネクタを外してアナログRGB出力にすると問題無い事がわかった。正常にWindowsは起動して、残りのアップデートが再開された。アップデートの最中に電源が切られる不具合があった履歴も残されていた。
この記事をまとめながらネットで調べたら、DVI 出力と Windows7 のトラブル報告も見つかった。

【過去にも】
Windows7にする前からも、ディスプレイが省エネモードで自動オフした後、再開できず(No Signal に陥ってしまう)、何度も電源入り切りしてみたり、アナログケーブルを挿して再開させたりのトラブルが何度もあった。ただ、今回のマウスカーソルだけが表示される現象は初めて。

【対策は】
「ロック」した時、一瞬画面がまっ黒になるが、今回はそのタイミングで DVI 出力がおかしくなった。また DVI コネクタを抜かないとだめなので、ハードがらみ、アップデートも関係しているかも、偶然発生なのかも不明。調査対策は後日へ。

【余談/不具合調査中の現象】
  • キー操作出来ない
  • セーフモードは DVI でも表示され、正常
  • コマンドプロンプトも、操作できるが、CドライブがDドライブに化けていたり
  • コマンドプロンプトで、winsxs-> Dir とやると、表示がループして止まらなくなったり
  • メモリーチェックは問題なし
  • ブルー画面になった途端、再起動を繰り返す現象が起きたり、
  • ブルー画面でPAGE_FAULT_IN_NONPAGED_AREA が出たり

2015年3月10日火曜日

RAMSA WZ-9421A 改造

オーディオ好きの知り合いに、クロスオーバの周波数を変更して欲しいという事で預かった機器の、改造が済んだ。久しぶりにはんだごてを手にした。

まず、最初に特性をとってみた。オペアンプの数から大体の回路構成と、抵抗コンデンサの数と定数からフィルタ部分が抵抗を切り替えているであろうことは推察できた。ハイパス側とローパス側の定数も共通のようだ。(2次のアクティブフィルタ, Gain=1)

しかし、いざプリントパターンを追って(片面ベーク基板)回路図にしていく段階で、何度もめげそうになった。基板裏から照明を当てて透かして見えるようにしてから少しは捗ったが、それまでは、表と裏、右と左を入れ換え、目を図面に移すたびに「あれっ」となって、また見返す。集中が持続できない。
次に困ったのは、フィルタの定数が教科書から導いた値と違う。また、Webの設計ツールでも違う。
結局、これまで何度も使った教科書とアナデバの資料による計算結果が一致したのだけれど、現物の定数は違っているので、これを調べた時間は無駄に終わった。

現物は、ポップノイズ対策なのか教科書にあるアクティブフィルタ回路に余計な部品がいくつもついていて惑わされたが、周波数比の通りの抵抗組み合わせ計算結果が得られたら、あとはすいすいと進んだ。所望の抵抗も2本、3本の組み合わせで手持ちのもので実現できた。
改造後の測定結果は、狙った通りだった。