検索結果表示セルのクリア
図書検索をする前には結果を表示するセルは必ずクリアしておきましょう。前回検索した結果が残っている可能性がありますので間違える可能性がでてきます。
選択セルのプロパティなどをクリアするには「Clearメソッド」があります。
これには、目的に合わせて以下のようなクリアを行うメソッドがあります。
- Clear
- ClearContents
- ClearFormat
- ClearComments
- ClearOutline
Clearメソッド
- 「Clearメソッド」は、数式、文字列、数値、罫線、書式、コメント文、アウトラインを全てクリアします。
- 「ClearContentsメソッド」は、数式、文字列、数値をクリアします。
- 「ClearFormatsメソッド」は、書式だけをクリアします。
- 「ClearCommentsメソッド」は、コメント文だけをクリアします。
- 「ClearOutlineメソッド」は、アウトラインだけをクリアします。使いようによっては便利な機能です。(?)なぜなら、集計の合計値がそのまま残っていますのでその合計値を活用できます。
【書式】
対象セル範囲.Clearメソッド
【ワンポイント】 Clearメソッドで罫線などを消す場合、表すべてを対象にした時は罫線全部が消えますが、表の一部部分を消した場合には、他のセルに接触している罫線は消えませんので安心です。ちなみに、罫線だけを消すメソッドはありません。
【確認】
では、コードにする前には必ずイミディエイトウィンドウで確認しましょう。
Ctrl + G キーを押してイミディエイトウィンドウに移ります。
その前にワークシート上に適当に表を作成して、その一部を選択して「Selection.Clear」を実行してみてください。
どうでしたか?期待したとおりの結果が表示されましたか。
確認が終わったらF4 キーを押してコードモジュールに戻りましょう。いろいろなパターンでclearしてください。
【練習問題7】
サンプルデータvba-exercises.xlsm「VBA練習問題」を開きます。
このブックのワークシート「検索結果」のセル範囲「A2:J23」をクリアしてみましょう。
1行目は項目名です。列番号AからJまで、2行目から23行までデータが入っています。
ワークシート「検索結果」のバックアップ用にワークシート「検索結果(2)」を準備しておきます。確認が終わったらワークシート「検索結果」をコピーして元に戻しておきましょう。
【解答例】
- Sub 練習問題7() '選択セルをクリアする
- Dim Ws As Worksheet
- Set Ws = Worksheets("検索結果")
- Ws.Range("a2:J23").Clear
- MsgBox "選択セルをクリアしました。"
- End Sub
【練習問題8】
練習問題7ではデータが23行まであるとわかっていましたが、一般的にはわかりませんので、前回学んだ「Endメソッド」を利用して最後の行が何行目間であるか調べてからセル範囲をクリアしてみましょう。
【解答例】
- Sub 練習問題8() '最終行を調べてから選択セルをクリアする
- Dim Ws As Worksheet
- Dim c As Integer 'レコードの最終行
- Set Ws = Worksheets("検索結果")
- c = Ws.Range("A2").End(xlDown).Row
- Ws.Range("a2:J" & c).Clear
- MsgBox "選択セルをクリアしました。"
- End Sub
【参考】
範囲指定の書き方で「"A2:J" & c」の説明をしておきます。
変数「c」は前の行で最終行が入っています。ここでは「23」が入ります。
演算子「&」は文字列をつなぐ役目がありますので、結果「"A2:J23"」とセル範囲が指定されます。