私は複雑な処理などの手順をコメントに書いたりしています。
さて、Excel VBAを使った業務アプリケーションの一つを起動したところ、全てのコメントが常に表示されてしまう現象に遭遇。
何十シートも修正しないとならない状況でしたので、全てのコメントを非表示にするVBAを書いてみました。
同じような現象で困っている方は是非利用してくださいね。
記事最後に、「オブジェクト ブラウザーの使い方」について書いています。
全てのコメントを非表示にする VBAのサンプル
サンプルは非常に簡単です。
全てのシート上にあるコメントを抽出し、非表示にするだけです。
Private Sub fncAllCommentsVisibleOff() Dim ws As Worksheet Dim cmt '全てのシートを確認 For Each ws In Worksheets 'シート内のすべてのコメントを確認 For Each cmt In ws.Comments 'コメントを非表示にする cmt.Visible = False Next Next End Sub
余談:オブジェクト ブラウザを使う習慣
VBAを書く前に何をどうすればいいのか?どう調べればいいのか?が分からないとそこで指が止まってしまいませんか?
そして、面倒なのでインターネット上のサンプルをコピー&ペースト・・・
そして実行するも、なぜかエラーが表示され最後まで完了しない・・・
なんで?
これって「使用者がスクリプトを理解できていないから」ですよね。
私もコピー&ペーストする事はありますが、内容はしっかり見ます。
内容が分からないので、調べます。意味を理解します。
楽をするためには、やっぱり基礎を固める努力が必要です。
今回のサンプルに話を戻して。
最近の私は、VBAを使った開発時に[オブジェクト ブラウザー]を必ず使用します。
※VBAの画面を開き、[F2]ボタンを押してみてください。
今回のサンプルを書くにあたって、
- 検索フォームに[comment]と入力し検索
- [Worksheet]クラスのメンバー[commnets]プロパティは[Comments]クラスである事が分かる
- [Comments]クラスの[Item]関数は、[Comment]クラスである事が分かる
- [Comment]クラスのメンバー[Visible]プロパティは[Boolean]である事が分かる
といった具合で調査をし、サンプル中段の[cmt.Visible = False]を書きました。
使用言語のライブラリやクラス、メンバーを調べ、理解できる程度になれば開発がすごく楽になります。
IT Proでありながら業務アプリケーションを開発して分かってきた事を少し書いてみました。
ご参考までに。