[[20080229125729]] 『空白のセルの削除について』(ひろ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『空白のセルの削除について』(ひろ)

ネットにて、空白のセルの削除をできるマクロを検索したところ次のようなのが分かりやすく掲載されいたので、使用してみました。

Private Sub CommandButton4_Click()

 Dim lastcell As Range

    '使われた最後のセルを取得
    ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Select
    '空白セルを選択
    Selection.SpecialCells(xlCellTypeBlanks).Select
    '空白セルを削除
    Selection.Delete
End Sub

ボタンは自分で設置し、設定しました。現状は、他のエクセルファイルの(A18:B360)を指定して、今回マクロを設定しているファイルのA1に貼り付けて、マクロを実行したところ

>Selection.SpecialCells(xlCellTypeBlanks).Select

にて、「エラー1004 オブジェクト定義のエラー」と表示されました。マクロは初心者のようなものなので、何が原因かわかりません^^;宜しくお願いします。

Excel2003 WindowsXP


 .SpecialCellsは、該当する物がないとエラーになります。
 On Error resume next
 で、エラー回避してください。
 (Jaka)

Jakaさん回答ありがとう御座います。

>SpecialCellsは、該当する物がないとエラーになります

参考にさせてもらったサイトには、

>SpecialCellsを使うと、指定された条件を満たしているすべてのセルを取得できます。

>・SpecialCells(xlCellTypeBlanks) - 空白のセル

とあります。こんかい貼り付けたデータは、A列B列の360行まで空白と値が入力されています。

この場合、「指定された条件を満たしているすべてのセル」は空白のセルにならないのでしょうか?

(ひろ)


 何となくそういうことなんじゃないかと思いましたが、
 例えば、A1に ="" と入れて、A1をコピーして
 A2にでも値だけ貼り付けてください。

 B2に
 =ISTEXT(A2)
 の関数を入れてください。
 空だと思っていたセルがTrueになります。
 長さ0の文字が張り付けられて入るので、完全な空白ではないのです。
 完全な空白にしたいのなら、セルを1列単位で選択して
 データ → 区切り位置 → そのまま完了 とかすると空白になります。
 ただ、データがこんなパターンで、上に完璧な空白があったりすると、
 おかしな具合になる場合がある。
 いかれちゃったのかな?EXCEL2002SP3

 空白
 空白
 空白
 空白
 空白
 空白
 1
 1
 1
 1

 マクロだったら、こんなのでも空白になります。
 Selection.Value = Selection.Value
 (Jaka)

>Jakaさん

分かりやすい解説ありがとう御座います。納得できました^^

SpecialCellsを使用しないマクロにて試したところ、解決できました。ありがとう御座います!!

(ひろ)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.