• ベストアンサー

エクセル アクティブ行の範囲選択

表題についてお尋ねします。 選択されているセルのある行で、なおかつC列からJ列までのみをマクロでコピーしたいと思っております。 行全体ですと下記で可能だったのですが、列を指定することができません。 Range(ActiveCell, ActiveCell).EntireRow.Copy C・D・E列には全ての列に必ずデータが入ってます。 F・G・H・I・J列には どれか一つの列のみにデータが必ず入っています。 複数行を選択することはなく、つねに一行のみです。 エクセル2003です。よろしくお願いいたします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

もっと簡単な方法もありそうな気がしますが、とりあえず Intersect(ActiveCell.EntireRow, Columns("c:j")).Copy

Haku46
質問者

お礼

早々のご回答ありがとうございます。 無事に思い通りの動作が出来ました。 ありがとうございました。

関連するQ&A

  • 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で調べてみたのですが、いきづまりました。

  • エクセルのマクロで行選択

    現在、エクセルでマクロを組んでいます。 行いたい内容としては 1.行6~1765までを選択 2. 1.で選択した行を非表示 3. 行6~"セルH2の値"までをを選択 4. 3.で選択した行を再表示 3の段階で失敗してしまいます。 Rangeメソッドに失敗しました、と出ます ソースは以下のとおりです ----- Private Sub CommandButton2_Click() Dim x As Integer Range("6:1765").EntireRow.Select Selection.EntireRow.Hidden = True x = Range("H2").Value Range("6:x").EntireRow.Select Selection.EntireRow.Hidden = False End Sub ---- 解決法がわかる方、教えてください よろしくお願いします。

  • 選択範囲に関する質問

    いつもお世話になっております。 初歩的な質問だと思いますが宜しくお願い致します。 リストでA列にデータが並んでいます。BとC列に数字があり、 B列に新しい列を入れて Range("B2").Select ActiveCell.FormulaR1C1 = "=SUM(RC[1]:RC[2])" こちらをAのデータが入ってる行数までペーストさせたいのですが、 どうしたらデータが入ってる行数までペーストさせるマクロを組み込めるでしょうか? Range("A2").End(xlDown).Rowなどで最終行まで調べることは出来るのですが、 Select、Copyの場合はどのように入れたら宜しいでしょうか? 自分で調べてみていろいろやってみましたのですが上手く行きませんでした…

  • エクセル:VBAで範囲選択について

    クリックしたセルを操作者に目立たせるために、 ActiveCell を交差する形で、行と列の反転表示を試みています。 例:D6セルをクリックすると、D列と6行を同時に範囲選択させる   Range("D:D,6:6").Select クリックしたセル番地は、 ActiveCell.Column ActiveCell.Row で求まると思うのですが、それから先の処理方法が思い浮かびません。 よろしくお願い致します。

  • EXCELマクロで左列に値のある行まで選択

    EXCELのマクロの記録を利用して簡単なマクロを作りたいのですが、 やりたいことは、表の最上部のセルにVLOOKUP関数を設定し、 フィルハンドルでWクリックするように表の最下部までコピーしたいのですが、 マクロの記録では、貼り付けする先のセルが固定されてしまい、 表の行数が変動する場合はそのまま使えません。 左列に値のあるセルを判断してその行番号までを選択できれば解決するのですが、 お詳しいかたお教えください。 ちなみにマクロの記録の構文では <フィルハンドルでクリックする場合> ActiveCell.FormulaR1C1 = "=VLOOKUP(RC7,'10FY'!R2C1:R1321C2,2,0)" Selection.AutoFill Destination:=Range("H3:H27") Range("H3:H27").Select End Sub <範囲選択しコピー貼り付けする場合> ActiveCell.FormulaR1C1 = "=VLOOKUP(RC7,'10FY'!R2C1:R1321C2,2,0)" Selection.Copy Range("H4:H27").Select ActiveSheet.Paste End Sub

  • エクセルVBA

    アクティブ「セル」のある「行」をコピーし、そのアクティブセルの下へ挿入するマクロに、複数「セル」を選択している場合は、複数行を挿入するように追記するには、どうしたらいいでしょうか? Sub Macro1() Rows(1).Copy ActiveCell.EntireRow.Insert Shift:=xlDown Application.CutCopyMode = False ActiveCell.EntireRow.Hidden = False End Sub よろしくお願いします。m(_ _)m

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

    エクセルで行を非表示にするとアクティブなセル?行?がどこかわからなくなり、マクロでアクティブなセルを移動するときにエラーが出ます。 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 にエラーが出るのですが、どうすればセルを移動できるでしょうか?

  • ”アクティブセル行」の一行下を選択”するマクロ

    ■ ”アクティブセルの、1個下の行を選択し、新しい空白行を一行挿入” ■次にその”アクティブセルのA列とB列の値を、  新しく作った空白行に、コピー  ・・・といったマクロを組もうとしております。 たとえば 12行目を選択するプログラム(コマンド?マクロ?)は、  Rows(12:12) となっていたので、それにならって Rows(activecell:B) などとやってみたのですが、うまくいきませんでした。 このような場合、どうしたらよいのかアドバイスをいただけると助かります。 どうぞ、よろしくお願いいたします。  

  • エクセルVBAで範囲の指定をしたいです(初心者)

    エクセルVBAで範囲の指定をしたいです(初心者) 列AからJがデータが入る範囲です。 列AとBとCには必ず数値等が何かしら入ります。 列Dは常に空白です。 列E以降は何か入ることも入らないこともあります。 7行目までデータがある場合、 A1セルからこの場合はJ7セルまでを範囲指定したいのですが 行数は未定なので、 Range("A1").Select Range(Selection,Selection.End(xlDown)).Select でA列のデータ最終行まで下がり、そこから9つ右の列までを 範囲指定するというのがよくわかりません。 自動記録で絶対参照と相対参照を切り替えてやってみたのですが、 どうしても Range(Selection, Selection.End(xlDown)).Select ActiveCell.Range("A1:J7").Select と常にA1からJ7が指定になってしまいます。 バージョンは2003です。 つたない質問文で申し訳ありませんが、 どなたか宜しくお願いいたします。

  • VBAアクティブセル行で列範囲選択

    マクロ A1をアクティブセルにして A:H列の行を選択するにはどう書けばいいのでしょうか? この場合A1:H1が選択されればいいのですが range("A:H " & activecell.row).select みたいな感じだとエラーになってしまいます。

専門家に質問してみよう