Excel開発でバグ要因のひとつ。入力となる「シートのデータ状態」には、多くのリスクがあること。
行や列の非表示、フィルター絞り込み中など、そのままNoCheckでの処理は危険です。
みなさん、こんにちは。セルネッツ竹本です。
今回は、「ワークシート状態のリセット処理」をテーマに、解説をしたいと思います。
◆ユーザがExcelを使い慣れている分、シート状態は想像しえない場合も
具体的な例をあげると、次のようなケースがあります。
受注データが取り込まれた「入力」シートがあるとします。
ユーザによって起こり得る状態は、
1. オートフィルタをかけて絞り込んだ状態のまま
2. 列が非表示されている
3. 行が非表示されている
4. アウトラインを適用している
5. グルーピングを適用している
など、です。
一覧表データといっても、データ状態によっては、正しい結果が得られないばかりか、一番のリスクは、なんといっても「気づく仕組みがない」ということです。
つまり、出力された結果をそのまま信じ、請求処理へと進んだ場合・・・。
明らかにおかしな数字があれば気づきもあると思いますが、リスクにはかわりません。
◆じゃあ、できることは何か。
「念のため」の処理となりますが、処理の前に、以下を行っておくことで、多くのリスクは回避できることが多いのでご紹介します。
‘※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Sub M_当該St内の全データリセット展開表示()
‘※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
On Error Resume Next
'★グループ解除
ActiveSheet.Cells.Rows.Ungroup
'★アウトラインをクリア
ActiveSheet.Cells.ClearOutline
'★全ての行を表示
ActiveSheet.Cells.EntireRow.Hidden = False
'★全ての列を表示
ActiveSheet.Cells.EntireColumn.Hidden = False
On Error GoTo 0
End Sub
【Point】
Excel業務を効率化するためのVBAツール開発では、100%信頼性の高いデータベースからの抽出データを取り扱うことは、頻度として多くはありません。
日々の手入力によるワークシートが入力となる場合が多いので、注意が必要です。
今回のテーマは、「ワークシート状態のリセット処理」について、解説を行いました。
本記事が、Excel実務の効率化において、ご参考お役立てになれば幸いです。