Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


19701 / 76732 ←次へ | 前へ→

【62459】Re:セル範囲を指定して削除するには?
お礼  AT  - 09/7/22(水) 22:34 -

引用なし
パスワード
   ▼かみちゃん さん:

早速の返信、どうもありがとうございます。


>マクロの前に、一般操作で、特定の範囲を削除することはできますか?
  ↓
通常のセル範囲は、削除することはできます。

>できるなら、その操作を「マクロの記録」で記録してみてはいかがですか?
  ↓
' 不要セルを削除する 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)

別に良い方法があれば、教えてください。
210 hits

【62453】セル範囲を指定して削除するには? AT 09/7/22(水) 19:13 質問
【62454】Re:セル範囲を指定して削除するには? かみちゃん 09/7/22(水) 19:21 発言
【62459】Re:セル範囲を指定して削除するには? AT 09/7/22(水) 22:34 お礼
【62461】Re:セル範囲を指定して削除するには? かみちゃん 09/7/22(水) 23:27 発言
【62465】Re:セル範囲を指定して削除するには? かみちゃん 09/7/22(水) 23:46 発言
【62479】Re:セル範囲を指定して削除するには? AT 09/7/24(金) 1:30 お礼
【62480】Re:セル範囲を指定して削除するには? かみちゃん 09/7/24(金) 6:22 発言
【62490】Re:セル範囲を指定して削除するには? AT 09/7/25(土) 13:44 お礼
【62478】Re:セル範囲を指定して削除するには? AT 09/7/24(金) 0:19 お礼

19701 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free