てぃーだブログ › S・M・C (Simple.Macro.Create) ~エクセルマクロ日記~ › VBA › エクセルマクロ(VBA):データの削除

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」をそのまま使います。

対象の行番号がわかれば、その行を選択して、削除の命令を
入れると簡単に削除処理ができます。

まず、入力画面に、「削除ボタン」を追加します。

エクセルマクロ(VBA):データの削除

プログラムをみてみましょう。

Private Sub CommandButton4_Click()

Worksheets("会員データ").Select
Worksheets("会員データ").Range("A" & g).Activate
MsgBox (g)
Selection.EntireRow.Delete

End Sub

会員№が「000002」の「中村じゅん」さんのデータを削除します。
エクセルマクロ(VBA):データの削除

エクセルマクロ(VBA):データの削除

エクセルマクロ(VBA):データの削除

「中村じゅん」さんのデータが削除され行が上にシフトされました。

このプログラムも以外と簡単ですよね。

初心者の私でも理解できたので、
エクセルマクロに興味をもたれた方は、挑戦してみてはいかがでしょうか。


同じカテゴリー(VBA)の記事

Posted by ミール at 10:51│Comments(0)VBA
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。