作ったEXCELマクロがめちゃくちゃ重い

世の中にはちょっと重いマクロと、めちゃくちゃ重いマクロがある。ちょっと重いマクロの原因は多岐にわたるが、めちゃくちゃ重いマクロの原因は2つに集約される。
1つは、自動計算との衝突。もう1つは処理件数が多い場合の再描画だ。
・自動計算との衝突マクロによって、セルの値が変更されると、変更された値をトリガとして再計算が実施される。この再計算が、単純な再計算であっても10^1から10^2msecのオーダーで時間がかかったりするので、100件程度の情報更新であっても数秒から数十秒かかる。だから、EXCELマクロを作成する場合は、必ず自動計算を止めるコードを書いてから、実行されるように記述するのがよい。また、エラーによって自動計算がキャンセルされてしまったままになってしまうので、かならずエラー処理に「自動計算を再開する」コードを書いておくことが必要だ。簡単に書いてしまうと

Function nantoka() as Long
    '自動更新を止めます
    Application.Calculation = xlCalculationManual

On Error GoTo kantoka
    '〜
    '各種処理
    '〜
    '自動更新を再開します
    Application.Calculation = xlCalculationAutomatic
    Exit Function

kantoka:
    '自動更新を再開します
    Application.Calculation = xlCalculationAutomatic
    msgbox "なんかエラーしました"

End Function

てな感じになる。基本、メインとなるようなモジュールには、自動計算の有無にかかわらず必ず書いておくとよい。
⇒後から計算式が追加された場合にあらかじめ備える。

・件数が多い場合の再描画
再描画は時間がかかるが、人は進捗が見えないことに重さを感じるので、数百件程度であれば、進捗を見せるために再描画することが望ましい。
ただし、処理件数が1000件を超えると描画コストのデメリットのほうが大きくなるので、その場合は表示を切ってしまったほうがいいだろう。尚、再描画の再開は、マクロ終了時に勝手に再開されるので、特に記述の必要はない。

Function nantoka() as Long
    '再描画を止めます
    Application.ScreenUpdating = False
    '〜
    '各種処理
    '〜
End Function

まずはこの2つだけで、劇的に早くなるので、やってみるといいだろう。

物理的または論理的に壊れたHDDからデータを引き抜くコツ

ハード屋さんの後輩に、HDDの復旧方法を聞いたので、メモしておく。

HDDは消耗品なので、よく壊れる。特に海門製は非常によく壊れる。壊れ方にもよるけれど、回転しない系の破損や、通電しない系の破損、ヘッダがデータを読んでくれない系の破損の3つ以外は結構なんとかデータを救えたりする。ただし、お金はかかります。

1.何はなくともまずはHDDデュプリケータと新品HDD
なんといっても、HDDデュプリケータがなければお話にならない。しかも相当高額なデュプリケータを購入する必要がある。だから、個人でできるようなものではない。SATAのみ対応なら、YECのこの辺SASを対応したいのであればこの辺を購入しておけば間違いないだろう。
なぜデュプリケータが必要なのか。壊れかけのHDD、もしくは壊れたHDDをその状態で保っておくためだ。可能であれば1対2コピーが可能なデュプリケータが良い。壊れかけたオリジナルHDDは一回のコピーで壊れてしまうかもしれないからだ。

2.壊れたHDDを2本含んだRAID5、3本含んだRAID6の復活
壊れていないHDDも含めて、全HDDのコピーを作成する。コピーが終わった状態で、RAIDコントローラの機能を使って、無理やりRAIDとして認識させる。うまく認識できればRAID復活となる。

3.ファイルシステムが壊れた
ファイルシステムが壊れた場合においても、まずはHDDコピーから行う。元の情報を崩さないためだ。
壊れたファイルシステムに対して以下のソフトを試してみるとよい。
・TestDiskを使用する(リンク
・ファイナルデータを使ってみる(リンク)

4.あきらめて業者に頼む
デュプリケータのメーカーが、結構ノウハウ持っているので、YECあたりに泣きつくと、高額な復旧金にて修復してくれるかもしれない。

まあ、いずれにしても、バックアップとRAIDのホットスペアは重要で、RAIDが縮退していないか確認するのも重要なので、その対策に力入れたほうがいいですよ。でもデュプリケータは用意しておいてもいいかもねという感じであった。

リモコンレスな日々

リモコンというのはかくれんぼが好きだ。しかも、こちらが急いでいるときに限ってかくれんぼしたがる。

対応方法は一つあって、リモコンを置く場所を固定化すること。固定化してしまえば見つからなくなることは無い・・・が場所を固定化している時点でリモコンではない気がする。
そもそも、テレビ、エアコン、電灯がすべて違うリモコンという時点でめんどくさいし、学習リモコンなどで同じリモコンの場合は、学習リモコンがSPOFになってしまう。学習リモコンの場所を固定化し、普段使いには個別のリモコンで運用するのが、まあ最も効果的な方法といえるだろう。スマートフォンで赤外線が出ればそれでいい気がするが、最近のスマートフォンには赤外線出力なんてついていないことが多い。
結論としては「固定化された赤外線出力装置をスマホから操作できれば良い」ということになる。
PLUTOという製品を使用していた。この製品はまさにスマホから操作可能な赤外線出力装置で、インターネット環境があれば、ブラウザから操作できるリモコンであった。帰宅の途中でエアコンの電源を入れたりできるので、特に夏季非常に重宝していた。だが、赤外線が弱くて失敗率が高く、製造会社の状況も微妙っぽい(製品が販売されていないし、社名も変更されている)。よって、同様の機能を持っているe-remoteを購入した。
非常に素晴らしい。何が優れているかといえば、タイマーの充実だ。朝起きる時間になれば、テレビの電源が入り、電灯がつき、出勤の時間になればテレビの電源が切れ、エアコンの電源が切れるような設定が可能で、かつ曜日別に設定できる。つまり勝手に家電品が時刻通りに動作してくれる。規則正しい生活をしていれば、リモコン操作が極力抑えられ、リモコンを探す必要もなくなる。

いや、マジで超便利よ。

修理依頼

会社に動画編集専用の共用PCがある。動画編集はそれほど頻繁に行う作業ではないが、マシンパワーをそこそこ使う。特に編集後の変換にマシンパワーを使うので、業務PCで編集するとほかの作業ができなくなってしまう。ある程度強力なPCを動画編集専用として、少数用意して共用すれば、業務を邪魔せず動画変換が行えるし、動画編集用のソフトも動画編集PCの台数分そろえればいいので、結果的に一番安く上がるのだ。

さて、この共用PCが起動しなくなってしまった。現象としてはPOSTを通過しない/ビデオ出力に達しない/BIOS/UEFIに到達していないっぽいのだ。
後輩のPC専門家に調査してもらったところ、問題切り分けのために最小構成で電源入れると起動する。最小構成に「ビデオカード」だけ接続すると起動し、増設HDDをさらに追加すると起動しない。「増設HDD」をつけたまま「ビデオカード」を取り外すと起動するので、電源の問題が疑われた。

保守に加入しているPCなので、修理依頼を行うために製造元の某外資メーカーに電話した。すると、切り分け作業を指示されたのでそれをやってみることにした。


私   :PCが起動しません。電源は入るんですがビデオ出力されていないようです。
メーカー:BIOS設定に入ってください。
私   :ビデオ出力がないので入れません。
メーカー:増設している機器があれば取り外してください。
私   :購入後に増設している機器はありませんが、ビデオカードとHDDの増設モデルを購入しています。外したほうがいいですか。
メーカー:外してください。
私   :外して電源入れたらビデオ出力されました。OSも起動できそうです。
メーカー:診断ツールを実行するので電源OFF・ONしてF?キーを押下してください。
私   :診断ツール起動しました。
メーカー:HDDを診断ツールで確認してください。
私   :(え、POST失敗確認できたのに、何でHDD確認するんだ、まあ念のためかな)診断終わりました。問題ありません。
メーカー:シャットダウンして増設HDDを装着して診断ツールで確認してください。
私   :診断終わりました。問題ありません。
メーカー:いったん電源OFF・ONしてBIOS設定に入ってください。
私   :(え、POST失敗確認できたのに、なんでBIOS設定確認するんだ?)BIOS設定入りました。
メーカー:ブートオーダー読み上げてください。
私   :(え、BIOSに到達してないのに何でブートオーダー読み上げるんだ?)読み上げます。〜〜
メーカー:BIOS設定初期化してください
私   :(え、BIOSに到達してないのに何でBIOS設定初期化するんだ?)初期化しました。
メーカー:保存して再起動してください。
私   :再起動します。起動できました。
メーカー:ではHWには問題ないので・・・
私   :ちょっと待ってください、ビデオカード外して起動したのに、なぜHWに問題ないと思いました?
メーカー:では、シャットダウンしてビデオカード装着してください。
私   :起動しません。
メーカー:では、ビデオカード外して運用お願いできますか。
私   :ちょっと待ってください、ビデオカードも貴社からの購入品です。使用できないと困ります。
メーカー:では、修理にうかがいます。

自分が説明していることの意味が分かっていない感じであった。
ここまで1時間。HPが0になった感じ。おれの1時間を返せ。

エラーの調べ方

先週のWindows Updateで実は問題が発生している。

Outlookというソフトがある。メール、スケジュール、タスクの管理ができる、(一部の)企業にとって、なくてはならないソフトだ。
Outlookのメール機能は「テキスト形式のメール」「HTML形式のメール」「RTF形式のメール」を作成できる。テキスト形式はシンプルで軽量だができることが少なく、HTML形式はそれなりの機能。RTF形式はできることが多いが、互換性の問題が起きやすい。

2017/6のWindows Updateを行うと、Outlook2007もしくは2010の環境で、RTF形式のメールに添付されたファイルが開かなくなる。結構ひどいバグだ。今のところ解決していない。

んでもって、本件を調査した際、「ノウハウを知らない人と知ってる人」で全く調査の速度が違った。

まず、ノウハウを知らない人がどう調査したか。そこそこの技術力がある彼は、「拡張子の関連付けがあやしい」と踏んで、拡張子の関連付け確認を行った。その後、最近そのPCに対して行われた変更を調べるため、WindowsUpdateを調べた。つい最近WindowsUpdateが実施されたことを確認したため、WindowsUpdateが怪しいと踏んだ彼は、「最近のWindowsUpdateの障害」を検索し始めた。しかし、現象について思いつくキーワードでググってもググっても現象は見つからない。そこで、調査依頼がこちらに来た。

わたしは、Outlookが出力したメッセージをそのまま検索した「このオブジェクトは Outlook で作成されましたが、」。するとすぐに回答が見つかった。

Windowsで見知らぬエラーメッセージが発生した場合、まず何を行うべきか。答えは「そのままのエラーメッセージでググる」だ。この時、改変してはいけないが、メッセージが長い場合は20文字くらいでカットするとよい。これで見つからなかった場合に、改めて現象から調査するとよい。

Windowsでエラーが起こった時、何よりも大事なのは「出力された正確なメッセージ」だ。自ら調査する場合はもちろんのこと、電話やメールで問い合わせを受ける立場であったら、相手が面倒がって適当に省略もしくは意訳されることがあるので、そこは必ず「出力されているメッセージ」をそのまま提供してもらう必要がある。

まあ、知っておいたほうがいいノウハウだと思われる。

印象論だけで語る(個人向け)PC周辺機器のおすすめ販売メーカー

本記事には統計的データも根拠も何もありません。個人的な印象だけで語ります。なお、使用したことがあるメーカーのみなので、網羅的な内容ではありません。

<ネットワーク機器>

  • IODATA、ELECOM(LOGITEC)
    ローテクな製品は購入してもいい。LANケーブルとか、つなぎで使用するLANHUBとか。基本的に長期で使用するものは購入しない。ただしこれだけは技術屋さんに推奨する。USB給電で動作するHUB。
  • BUFFALO
    無線LANでよく採用されているが、個人的にはおすすめしない。IODATA、ELECOM(LOGITEC)と比較する場合のみBUFFALO推奨。
  • NECアクセステクニカ
    無線LANで余計なトラブルを起こしたくないなら、NEC一択。若干高いけどね。
  • NETGEAR
    価格と品質のバランスが取れている。ネットワーク機器として個人用やSOHOとして使用するには十分。

<ストレージ>

  • SANDISK
    SDとしては最も信頼している。SSDは個人的にあまりいい印象がない。
  • WESTERN DIGITAL
    あまりいい印象がないが、HGSTは別格。HDDはHGSTを最も信頼している。
  • 東芝
    HDD、SSD、SDとすべてまとも。とりあえず東芝買っておけば安心。
  • CFD(Crucial)
    SSDを非常に信頼している。
  • Intel
    SSDを信頼しているが若干高い。

<マウス、キーボード>

  • ロジクール
    非常にまとも。個人的にはここしか使わない。
  • ELECOM、BUFFALO
    普通。ELECOMで断線の経験が多いので、進んでは買わない。
  • Microsoft
    マウスは結構好き。キーボードは形状が個人的に合わない。

70巻以上の漫画

年に2回くらい巻数が多い(超長期連載の)マンガを数えて、まとめ記事にエア引用されるシリーズ。
今回のトピック

  • 70巻を超えたあたり〜81巻で力尽きるケースが多く、100巻を超えたあたり〜110巻で力尽きるケース多し。
  • 単独で100巻が11作、シリーズ100巻が7作。
  • 山口六平太が、作者逝去による完結、非常に残念。
  • DREAMSがソードマスターヤマトのような異常な完結。マガスペお疲れ。
  • 鬼平犯科帳が100巻間近。
  • ドカベンシリーズが200巻間近。

尚、シリーズの集計は「外伝」と思われるものを除外します。
○が単独。△が単独でも70越え。☆がシリーズ。

○こち亀	200巻	(完)
☆ドカベン	196巻	(「ドカベン(48)」、「大甲子園(26)」、「プロ野球編(52)」、「スーパースターズ編(45)」、「ドリームトーナメント編(25-)」)
○ゴルゴ13	183巻
----------------------------------150巻------------------------------------------
○ミナミの帝王	140巻	(ただし、「ヤング編(6)」、「ヤング編 利権空港(3)」を含まない)
○クッキングパパ	139巻
☆刃牙	125巻		(「グラップラー刃牙(42)」「バキ(31)」「範馬刃牙(37)」「刃牙道(15-)」で外伝を含まない)
☆ジョジョ	118巻	(「ジョジョの奇妙な冒険(63)」「ストーンオーシャン(17)」「スティール・ボール・ラン (24)」「ジョジョリオン(14-)」)
☆銀牙	117巻	(「流れ星 銀(18)」、「WEED(60)」、「WEEDオリオン(30)」、「LAST WARS(9-)」を含み、「赤目(3)」を含まない)
○はじめの一歩	116巻
☆キン肉マン	114巻	(「キン肉マン(57-)」、「キン肉マン2世(29)」、「キン肉マン2世 究極の超人タッグ編(28)」)
☆超人ロック	111巻	くらいだと思われる
○美味しんぼ	111巻
----------------------------------110巻の壁------------------------------------------
○弐十手物語	110巻	(完)
○静かなるドン	108巻	(完)
○浮浪雲	108巻
○あぶさん	107巻	(完)
☆千里の道も	106巻	(「千里の道も(45)」、「新(16)」、「第三章(39)」、「修羅の道(6)」)
○☆あさりちゃん	101巻	(「あさりちゃん(100)」、「5年2組(1-)」)
----------------------------------100巻------------------------------------------
○鬼平犯科帳	99巻
○パタリロ	97巻	(ただし、右に記載する外伝4シリーズを含まない「西遊記(8+1)」「源氏物語(5)」「家政夫シリーズ(5)」「パパ(1)」)
☆コボちゃん	97巻	(「コボちゃん(60)」、「新コボちゃん(37-)」)
☆キャプテン翼	96巻	(「キャプテン翼(37)」「ワールドユース編(18)」「ROAD TO 2002(15)」「GOLDEN-23(12)」「EN LA LIGA(6)」「ライジングサン(5-)」あと短期連載が3冊)
○釣りバカ日誌	95巻
☆コータローまかりとおる	94巻	(「コータローまかりとおる(59)」「新コータローまかりとおる 柔道編(27)」「コータローまかりとおる L(8-?)」)
○名探偵コナン	91巻
☆島耕作	89巻	(「課長(17)」、「部長(13)」、「取締役(8)」、「常務(6)」、「専務(5)」、「社長(16)」、「ヤング(8)」、「係長(4)」、「会長(7-)」、「学生(5-)」)
○天牌	87巻(ただし天牌外伝(31-)を含まない)
○江戸前の旬	86巻	(ただし「旬と大吾(3)」を含まない)
△☆MAJOR	85巻	(「MAJOR(78)」、「2nd(7-)」)
○ONE PIECE	84巻
 ----------------------------------81巻の壁------------------------------------------
☆タフ	81巻	(完)	(「高校鉄拳伝タフ(42)」、「TOUGH(39)」を含み、「龍を継ぐ男(3-)」を含まない)
○なんと孫六	81巻	(完)
☆ドクターK	81巻	(「スーパー(44)」、「Doctor K(10)」、K2(27-))
○山口六平太	81巻	(完)
○ゼロ	78巻	(完)
☆浦安鉄筋家族	78巻	(「浦安鉄筋家族(31)」、「元祖(28)」、「毎度(19-)」)
☆釣りキチ三平	77巻	(完)(「釣りキチ三平(65)」、「平成版(12)」)
☆DEAR BOYS	76巻	(「DEAR BOYS(23)」、「ACT2(30)」、「ACT3(23)、を含み「OVER TIME(3)」を含まない)
☆鉄拳チンミ	76巻	(「鉄拳チンミ(35)」、「新鉄拳チンミ(20)」、「Legends(21-)」を含み、外伝(4)を含まない)
○まるごし刑事	75巻	(完)
○BLEACH	74巻	(完)
☆かっとび一斗	72巻	(完)(「かっとび一斗(46)」、「風飛び一斗(26)」)
○NARUTO	72巻	(完)
☆味いちもんめ	71巻	(「味いちもんめ(33)」、「新(21)」、「独立編(10)」、「にっぽん食紀行(6)」、「世界の中の和食(1-)」)
○いのちの器	71巻
○DREAMS	71巻	(完)

次回用メモ

  • ふたりエッチ(69)
  • 風の大地(68)
  • 白竜シリーズ(67)白竜21,LEGEND46,HADOU0
  • 銀魂(67)
  • 男塾シリーズ(66)魁34,暁25,極7,真0
  • 夕焼けの詩(64)
  • 王家の紋章(62)
  • 乱太郎(60)

超人ロックこちらid:soorceさんによりカウントされた93巻以降、風の抱擁が(3)+4、ホリーサークルが(1)+2、刻の子供達が+3、ラフラールが+4、ドラゴンズブラッドが+4、鑑の檻が+1。または、こちら参照
シティハンターシリーズはシーケンシャルな物語でないので、集計から除外。