Excel VBA Hidden属性の闇

これまで複雑な様式をVBAや計算式で作成してきましたが、VBAや複雑な計算式は他人に引き継ぐことができないため、現在すべて簡易スクリプトで動作するプログラム(VBA)を作っています。

例えば「hide:物理名」というスクリプトを書くと、条件に応じて物理名に割り当てたセルの行が隠ぺいされるというものです。

これまで順調に動いてきましたが、突然行の隠ぺいが動作しなくなりました。しかし何が原因か特定できず、数時間苦しむはめに・・・原因は、

Thisworkbook.sheets(シート名).Row(行).AutoFit

です。
Autofitは行の高さを自動で調整するプロパティですが、Hidden属性と全然関係ないやん、という感じかと思います。
しかしこのAutofitをセルが変化するたびに動作するシートイベントに組み込んでしまったんですね。
さらにhideスクリプトにデータ消去コードを組み込んでいたため、hidden属性を設定するたびに、AutoFitが呼び出され、行を隠すたびに行が表示される、という始末。

AutoFitとhidden属性が相反する動作をするなんて知らんがな。こんなこと、グーグル先生に聞いてもまったくでてきません。
原因特定をあきらめて前作ったコードから再コーディングしている最中に気が付きました。

しかし以前のコードに戻れたのは、たまたま格納しているデスクトップフォルダがOneDrive連携しておりたまたま履歴から復旧できたためで、前のコードに戻れなかったらどうなったことか….

いやはや、勘弁してほすいわ・・


この記事が気に入ったらサポートをしてみませんか?