セルの選択範囲を広げて消去したい方法とは?

このQ&Aのポイント
  • Win7とExcel2007の初心者が、マクロを使用して特定のセル範囲を消去したい場合の方法を教えてください。
  • 上記のコードを使用して、DK列のセル(※※のない行だけ)を消去することができました。しかし、複数のセル範囲("BR30:EE30")の場合は、どのようにすればいいでしょうか?
  • 質問者は、ActiveCell列のセルではなく、複数のセル範囲("BR30:EE30")を、※※のある行の手前までをClearしたいと考えています。方法を教えてください。
回答を見る
  • ベストアンサー

セルの選択範囲を広げて消去したい

win 7 とEXCEL2007でマクロ作成初心者です。 Sub kigoumade() Range("DK30").Activate Do Until ActiveCell.Value = "※※" ActiveCell.UnMerge ActiveCell.Clear ActiveCell.Offset(1).Activate Loop End Sub 上のコードでDK列のセル(※※の無い行だけ)を消去できました。 これをActiveCell列のセルでなく、 ("BR30:EE30")という複数セルを、※※のある行の手前までをClearしたいのですが どうすればよろしいかご教示お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

一例ですが Sub kigoumade() Range("DK30").Activate Do Until ActiveCell.Value = "※※" Range("BR" & ActiveCell.Row & ":EE" & ActiveCell.Row).UnMerge Range("BR" & ActiveCell.Row & ":EE" & ActiveCell.Row).Clear ActiveCell.Offset(1).Activate Loop End Sub では如何でしょうか。

aitaine
質問者

お礼

ありがとうございます。今外出から帰ってさっそく実行したところ、思ったとおりのことが着実に実行されました。本等にありがとうございました。感謝感激です。嬉しいです。

関連するQ&A

  • エクセルで行を非表示にするとアクティブなセルが・・・

    エクセルで行を非表示にするとアクティブなセル?行?がどこかわからなくなり、マクロでアクティブなセルを移動するときにエラーが出ます。 Sub example() ActiveSheet.Range("D3").Select Do Until ActiveCell = 23 If ActiveCell <> "" Then ActiveCell.Offset(1, 0).Select ElseIf ActiveCell <> "" Then ActiveCell.Offset(1, -3).Select ElseIf ActiveCell <> "" Then ActiveCell.Offset(1, -6).Select Else: ActiveCell.EntireRow.Select Selection.EntireRow.Hidden = True ActiveCell.Offset(0, -6).Select End If Loop End Sub 一番下のActiveCell.Offset(0, -6).Select にエラーが出るのですが、どうすればセルを移動できるでしょうか?

  • エクセルVBAでグラフの範囲を設定する方法

    お世話になっています。 グラフ自体は、作成済みのものを使用して、データの範囲だけを 変更させる方法を考えています。 A列に、データが入っている範囲を選択して、選択したセル範囲を グラフのデータ範囲としたいと思います。 現在、作成したプログラムは以下のものです。 当たり前なんでしょうが、以下のものではエラーになります。 Loopコマンドで、アクティブになったセルをグラフのデータ範囲に 設定する方法を教えてください。 よろしくお願いします。 Sub グラフ作成() ' Dim 範囲 As String Range("A1").Select Do Until ActiveCell = "" ActiveCell.Offset(1, 0).Activate Loop ActiveCell.Offset(-1, 0).Activate Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlUp)).Select   範囲 = ActiveCell ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.SetSourceData Source:=Range(範囲) End Sub

  • Excelマクロ:変数でセル範囲指定

    マクロの迷い人です。 Excelの表をマクロで印刷しようと思っています。 行の数が毎回違うため、最終セルもその都度指定しなければなりません。 A1 B1 A2 B2 A3 B3 A4 B4 この例で、A5 B5 以降は空セルとします。 印刷範囲を Range("A1:B4")と書かずに、そのときどきのアクティブセルを変数に代入し、変数を使って範囲指定したいのです。 Sub MacroTest () Dim a As Variant Dim b As Variant Range("B1").Activate Do While a <> 0 ActiveCell.Offset(1, 0).Activate '空白でなければ一つ下に移る a = ActiveCell.Value Loop ActiveCell.Offset(-1, 0).Activate '上の行に移る b = ActiveCell.Value Range("A1:"& b).Select End Sub こうしてみましたがダメでした。 デバッグの方法がわからないので教えて下さい。よろしくお願いします。

  • VBA Offsetで選択セルを移動させる

    よろしくお願いします。 H8から一行づつ下げてH10まで来たらH15まで飛ばして また一行づつ下げていく。 H20まで来たらH27まで飛ばしてまた一行づつ下げていく。 このようにしたいのですが、構文が解りません。 Private Sub CommandButton1_Click() If ActiveSheet.Range("H8").Activate Then ActiveCell.offset(1, 0).Activate Else ActiveCell.offset(1, 0).Activate End If If ActiveSheet.Range("H10").Activate Then ActiveCell.offset(5, 0).Activate Else ActiveCell.offset(1, 0).Activate End If If ActiveSheet.Range("H20").Activate Then ActiveCell.offset(7, 0).Activate Else ActiveCell.offset(1, 0).Activate End If End Sub

  • EXCELでENTERキーでセルの移動マクロ

    こんにちは。 EXCELでENTERキーでセルの移動マクロを使いたいのですが、下記のマクロで改良を教えてもらいたいと思います。 まず、最初は必ず、セルB5にフォーカスしたいということ。そうして、できればOFFSETを使わないで、rangeかcellを使いたいのですが、お願いします。 Sub セル移動() Range("B5").Select Select Case ActiveCell.Column Case 1 ActiveCell.Offset(1, 1).Activate Case 2 ActiveCell.Offset(2, 2).Activate Case 3 ActiveCell.Offset(1, 1).Activate Case 4 ActiveCell.Offset(1, 1).Activate End Select End Sub

  • 結合セルのある範囲を、未結合の範囲に書式を張付ける

    Excel2007でマクロ作成中の初心者です。 1)1枚のシートの中の、セル範囲B30~BM59を、BR29の最下端に複写します。   ※この範囲は毎月、変動します。(28,30,31の3種類だけですが・・) 以下のコードで、セル範囲BR61~EE90に、正常に貼付けが出来ました。 Sub 範囲を右下に値を複写() Range("B30").Resize(Day(DateSerial(Year(Date), Month(Date), 0)), 66).Select Selection.Copy Range("BR29").End(xlDown).Select ActiveCell.Offset(1, 0).Select Selection.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False End Sub 2)問題点は、セル範囲B30~BM59が、セルの結合をしている部分があり  "BR29"以下の、貼付部分のセル結合を解除する必要があり、手動で行いました。 3)"BR30"行は青色、BR31行は白色で、セル結合している2行を、先ほど貼付けしたセル範囲BR61~EE90の部分に、この書式を  貼付けしなければなりません。 4)そこで、2行の書式を、先ほど値を貼付けた部分と同じ範囲に貼りつけるにはどうしたらよろしいでしょうか。

  • VBAについて

    いつもお世話になっています マクロ・VBA超初心者です。 質問させてください。 現在シート1の完売のセルの欄に○が入っていれば日付をみてシート2の同じ日付の隣のセルに○を入力しようと思っているのですが、シート2の日付を検索はしているんですが入力がいきません Sheet1  ↓セルA1 ↓セルB1  5月26日   26           B1のセルはDAY(A1)にて出してます         完売  A氏     ○             Sheet2  ↓A列   ↓B列 5月  1日  ・  ・  ・  26日    ○           ←シート1の所に○が付いているとシート1セルB1と同じ  27日                  日付の隣のセルに○を入力  28日 VBA Sub test() Sheets("Sheet2").Select Range("A1").Select Do Until ActiveCell = "" ActiveCell.Offset(1, 0).Activate If ActiveCell.Value = Worksheets("Sheet1").Range("B2") Then ActiveCell.Offset(0, 1).Activate If ActiveCell.Value <> "○" Then ActiveCell.Valu = "○" ActiveCell.Offset(0, -1).Activate Else ActiveCell.Offset(0, -1).Activate End If Else End If Loop Sheets("Sheet2").Select Range("A1").Select End Sub どこが間違っているかわからない状態です。 分かりにくい説明ではあるんですが教えてください お願いします。

  • :【Excel VBA】 Do Until ~ Loop 構文で途中の空白セルを飛ばしてデータのチェックをしたい

    こんにちは。 Do Until ~ Loop 構文で 空白セルまでループして重複する値をチェックしたいと考えています。 --------------------------------------------- Sub 重複チェック() Dim 検索語 As String Dim 該当数 As Long Dim 確認 As Integer Range("A4").Activate Do Until ActiveCell.Value = "" 検索語 = ActiveCell.Value 該当数 = WorksheetFunction.CountIf(Range("A:A"), 検索語) If 該当数 >= 2 Then ActiveCell.AutoFilter Field:=1, Criteria1:=検索語 確認 = MsgBox("次を検索しますか?", vbYesNo) If 確認 = vbNo Then Exit Sub End If ActiveCell.Offset(1, 0).Activate Loop Range("A4").AutoFilter MsgBox "名前の重複チェックが終了しました。" End Sub --------------------------------------------- ただセルA列には行の途中、空白も含まれているため、 途中で止まってしまいます。 今後A列にはデータが追加されていきます。 途中の空白セルを飛ばして、 データーの最後までチェックするにはどのようにすればよいでしょうか?

  • 選択範囲を変数で最下端の次に移動したい

    Excel2007でマクロ作成中の初心者です。 以下のコードで、範囲のみを正常に移動できました。 Sub 範囲のみの移動() Dim tmp As String Range("BR30:EE91").Select Range(tmp).Offset(60, 0).Select End Sub 範囲("BR30:EE91")は、一定で変わらないのですが、 Offsetの (60, 0).Select  60は変わるのでこれを変数にしたいです。 これをデータ入力の最下端セル Range("BR30").End(xlUp)の 次のセルまで移動させたいのですが、変数の仕方がわかりません。 よろしくお願いします。

  • excelでの対象範囲行削除

    excel2010 Aセルに入っている文字列で比較し、範囲抽出するマクロを作成しょうとしています。 何をやりたいかは、次の通りです。 Aセルに見出しがついた行を先頭に、次の見出しの1行前までを 行で抜出したいのです。 例 下記はAセルのデータのみを表示しています。 1行目 TEST_a 2行目  3行目  4行目 TEST_b 5行目  6行目  7行目  8行目 TEST_c 9行目  10行目 TEST_d 11行目 1~3行までを1つ目、4~7行を2つ目、8~9行を3つ目、10~11を4つ目で抜き出したいのです。 まず、4~7行目を抜き出すマクロは、 1~3行までを削除と下から8行目までを削除と考えました。 上から不要な部分を削除(1~3行までを削除)するマクロは下記の通りです。 Sub sample1() ' ' 上から下に検索 ' Dim x Range("A1").Activate '最初のセル Do Until ActiveCell.Value = "TEST_b" 'TEST_bが現れるまで x = ActiveCell.Value If x <> "TEST_b" Then 'TEST_bでないなら ActiveCell.EntireRow.Delete 'その行を削除する Else ActiveCell.Offset(1).Activate '次の行 End If Loop End Sub これは、正しく動作します。 上記を応用し、下から削除するマクロは次の通りとしました。 Sub sample2() '下から検索 Do Until ActiveCell.Value = "TEST_c" 'TEST_cが現れるまで y = Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row 'データ最下行取得 y = ActiveCell.Value If y <> "TEST_c" Then 'TEST_cでないなら ActiveCell.EntireRow.Delete 'その行を削除する Else ActiveCell.Offset(-1).Activate '次の行 End If Loop End Sub このsample2を実行すると、応答が返ってきません。 何が悪いのか、どの様にしたら正しく動作するのか教えていただきたく。(1) また、smple2だとTEST_cの行は残ってしまいます。 なので、下からTEST_cまでを削除するマクロは、 どの様に記述したらよいか教えていただきたく。(2) 以上2点、よろしくお願いします。 ※マクロは初心者です。いろいろWEBで調べてみたのですが、いきづまりました。

専門家に質問してみよう