|
▼かみちゃん さん:
早速の返信、どうもありがとうございます。
>マクロの前に、一般操作で、特定の範囲を削除することはできますか?
↓
通常のセル範囲は、削除することはできます。
>できるなら、その操作を「マクロの記録」で記録してみてはいかがですか?
↓
' 不要セルを削除する Macro
Range("A164:P555").Select
Selection.Delete Shift:=xlUp
Range("A164").Select
かみちゃんさんの指摘とおり、上記のマクロを組み込んで動作確認を行ったところ
不要セルを削除できました。
でも、これは、データが<163行専用>なのです。
仕事で、ACCESS-2007を使い、データを抽出してEXCEL-2007で編集しているのです
がこのデータ量が毎回不定で困っています。
データの行数が、多い時で<530行>の時もあれば、少ない時で<80行>の時も
あり、毎回行数が一定でないのです。
毎日、仕事でデータ編集するのですが、データの行数が過去に一度も<555行>
を超えたことが無かったので、勝手に編集する行数範囲を最大で<555行>と
決めちゃいました。
>それでわからなければ、記録したマクロを提示してみてください。
↓
まだ、低レベルで、直接マクロを記述するスキルが無いので、EXCELのマクロ記録
機能を使い、マクロを作成しました。
下記に作成したマクロの一部分を抜粋しましたので、確認お願いします。
'[指示数]=[完了実績数]ならば、フラグ⇒○、ステータス⇒試済
'非ならば、フラグ⇒×、ステータス⇒未
Range("O2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-2]=RC[-1],""○"",""×"")"
Selection.AutoFill Destination:=Range("O2:O555")
Range("O2:O555").Select
Range("P2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""○"",""試済"",""未"")"
Selection.AutoFill Destination:=Range("P2:P555")
Range("P2:P555").Select
ActiveWindow.SmallScroll Down:=9
Range("O2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-2]=RC[-1],""○"",""×"")"
Selection.AutoFill Destination:=Range("O2:O555")
Range("O2:O555").Select
Range("P2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""○"",""試済"",""未"")"
Selection.AutoFill Destination:=Range("P2:P555")
Range("P2:P555").Select
ActiveWindow.SmallScroll Down:=9
セル<M164〜M555>と、セル<N164〜N555>が共に空白である為に、
セル<O164〜O555>にフラグの『○』が入ります。
また、セル<P164〜P555>にステータスの『試済』が入ってしまいます。
実際には、今回のデータは全部で<163行>しか無いのに、164行目〜555行目に
フラグの『○』と、ステータスの『試済』が全て入るので、この不要箇所を削除
したいと考えています。
従って、下記の様に(1):(2)のセル範囲を指定して削除したいのですが、
これって、無理なのでしょうか?
'セル[A1]の最下端行から1つ下の行にあるセルを選択する
Range("A1").End(xlDown).Offset(1).Select ←(1)
'セル[P1]の最下端行にあるセルを選択する
Range("P1").End(xlDown).Offset(0).Select ←(2)
別に良い方法があれば、教えてください。
|
|