2009年07月27日
エクセルマクロ(VBA):データの削除
先日書いたマクロの記述で、知人に教わった事があるので参考に書きます。
先日書いたマクロ、
If Worksheets("会員データ").Cells.Find(対象者) Is Nothing Then
・
Else
g = Worksheets("会員データ").Cells.Find(対象者).Row
・
End If
の所を一旦、オブジェクト変数を使って記述すると分かりやすいですよとの事。
オブジェクト型変数とはRangeオブジェクトやWorksheetオブジェクトなど
オブジェクトを格納する専用の変数です。
オブジェクト変数の値の代入は、数値や文字の編集のように
変数 = 数値、文字ではなく
Set 変数 = オブジェクトとSetを使います。
また、変数の定義は
Dim obj As Rangeとなります。
オブジェクト変数を使って記述すると、
Dim obj As Range
Set obj = Worksheets("会員データ").Cells.Find (対象者)
If obj Is Nothing Then
・
else
g = obj.Row
・
End If
なるほど、勉強になりました。
ありがとうございました。
それでは、本題です。
今日は、削除の処理について考えてみたいと思います。
削除処理も、更新処理と同じく、対象データの行番号がわかれば
簡単に出来ます。
行番号の取得は、前回データ検索時に変数「g」に取得されています。
その「g」をそのまま使います。
対象の行番号がわかれば、その行を選択して、削除の命令を
入れると簡単に削除処理ができます。
まず、入力画面に、「削除ボタン」を追加します。

プログラムをみてみましょう。
Private Sub CommandButton4_Click()
Worksheets("会員データ").Select
Worksheets("会員データ").Range("A" & g).Activate
MsgBox (g)
Selection.EntireRow.Delete
End Sub
会員№が「000002」の「中村じゅん」さんのデータを削除します。



「中村じゅん」さんのデータが削除され行が上にシフトされました。
このプログラムも以外と簡単ですよね。
初心者の私でも理解できたので、
エクセルマクロに興味をもたれた方は、挑戦してみてはいかがでしょうか。
Posted by ミール at 10:51│Comments(0)
│VBA