【VBA入門】ワークシート状態は未知の世界。リセット処理でバグ発生率を下げる為にやること

Excel開発でバグ要因のひとつは、入力シートとなるシートの「データ状態」には、多くのリスクがあること。
行や列の非表示、フィルター絞り込み中など、そのままNoCheckでの処理は危険です。

みなさん、こんにちは。セルネッツ竹本です。

今回は、「ワークシート状態のリセット処理」をテーマに、解説をしたいと思います。


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実務の効率化において、ご参考お役立てになれば幸いです。


全国対応!お気軽にお問い合わせください