選択行番号を取得して別シート貼り付ける方法

このQ&Aのポイント
  • VBAを使用して、Sheet1で選択した行番号をSheet2のA1列に貼り付ける方法がわかりません。
  • 選択行番号は最大400位まであります。特にメッセージボックスに表示する必要はありません。
  • 質問者は、行番号を取得するVBAを使用して、選択した行番号情報をSheet2のA1列に全て貼り付けたいと考えています。
回答を見る
  • ベストアンサー

選択行番号を取得して別シート貼り付ける方法

VBAを使いsheet1の選択した行番号をsheet2のA1列に全て貼り付ける方法が分からなくて困っています。  ちなみに下記のVBAはsheet1上で実行するとメッセージボックスに選択行の数値が順番に表示されます。この選択行番号情報を全てsheet2のA1列に貼り付けたいのですが、どうすれば良いでしょうか?   選択行は最大400位になります。特にメッセージボックスに表示する必要はありませんので、メッセージボックス表示は不要です。 Sub 行番号取得() Dim r As Range For Each r In Selection.Rows MsgBox r.Row Next End Sub

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

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/690)
回答No.1

Sub 行番号取得() Dim r As Range Dim LCnt As Integer LCnt = 0 For Each r In Selection.Rows LCnt = LCnt + 1 ThisWorkbook.Sheets(2).Cells(LCnt, 1).Value = r.Row Next End Sub こうゆうことでしょうか。

shibushijuko
質問者

お礼

早急にご回答いただき、誠にありがとうございます。 正に希望通りの結果を得る事が出来ました。 有難うございました。m(_ _)m

関連するQ&A

  • EXCEL(VBA)で1行おきに行を選択する方法

    こんにちは。VBAは苦手なので教えてください。 EXCELのsheet1にあるリストに、下記マクロで1行おきに 空白行を挿入しました。 Sub test1() '隔行で空白行を挿入 Dim rw As Long 'セル For rw = Range("A1").End(xlDown).Row To 2 Step -1 Rows(rw).Insert Next End Sub 同じファイルのSheet2の1行目<Rows("1:1")>に、計算式が入力されています。 マクロで挿入した空白行全てを選択し、そこへSheet2の1行目のコピーを 貼り付けたいです。 ぜひ、良い方法を教えてください。

  • VBAで列範囲、行範囲の指定方法の質問です。

    例えば、3行目から5行目を選択する記述、Rows("3:5").Select の記述で行番号を変数で指定することができますか? 要求側で   r1=3   r2=5 と指定してサブルーティンに渡し、 Rows("3:5").Select と同じ効果を期待したいのです。 なお、指定範囲が1行の場合は、次の記述で実現しています。 Sub 列の選択(Sheet as Ojbect, RowNo)   Sheet.Rows(RowNo).Select End Sub アクティブ シートへの処理なので、別にWorkSheet オブジェクトの指定は不要だと思うのですが、次の記述ではエラーで成功しません。 Sub 列の選択(RowNo)   Rows(RowNo).Select End Sub 結論として次のような Subroutine の作成が希望です。 Sub 複数列の選択(Sheet as Object, Row1, Row2) ・・・ End Sub

  • 「シート1のアクティブセルをコピーしてシート2のA列の最終行+1に貼り付ける」

    「シート1のアクティブセルをコピーしてシート2のA列の最終行+1に貼り付ける」 というVBAコードが知りたいのですが Sub Macro1() Selection.Copy Sheets("Sheet2").Select Selection.End(xlDown).Offset(1).Select ActiveSheet.Paste End Sub ではうまくいきませんでした。 ・マクロを実行する前のもともとのアクティブセルはシート1の入力されたセル上にあるとします。 ・シート2のA列にはA1~A?と削除したり挿入したりで数が変わりますが何かしら文字列が隙間なく入っています。 よろしくお願いします。

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

    エクセル2010にて。 行を選択した状態から、1行目から現在行の1つ上までを選択し、それを非表示とするマクロを組みたいのです。 VBAは全く分からず・・・ 変数を宣言し、その変数を代入すれば良いかと試行錯誤しましたが判らず。 Sub 3行目から現在行より上を選択して非表示() '  Dim x As Integer  x = ActiveCell.Row Rows("3:x-1").Select Selection.EntireRow.Hidden = True End Sub では、全く動作せず。。 例えば20行目を選択した状態で、マクロを実行すると3~19行目までが非表示になるようにしたいのです。御教示下さいませ。

  • エクセルシートの行番号だけを隠すには?

    こんにちわ、よい天気ですネ。教えてください 私が使っているパソコンの画面は縦長です。そこで少しでもエクセルのデータ画面をたくさん表示したいのでシートの一番左の縦列の行番号の部分だけを非表示にしたいのですが、できるんでしょうか?(行番号と列番号の両方はできるんですが・・・・・) VBAでできたらハッピイーです。どなたかお教えくださいませんか? よろしくお願いします。

  • コンボボックスで選択した値をシートに転記する

    エクセルを使用して表を作成していますが、うまくいきません。 作りたいのは下記のものです。 sheet1にリストを作成  (リストはA-F列で300行程、また先頭A列は任意の不連続番号) sheet2に表を作成 sheet2のA1にコンボボックスを作成 コンボボックスにはsheet1のリストのA,B列を表示させたい またコンボボックスで選択した行のデータをsheet2にコピーさせる。 と、なるようにしたいのですが、どのようにしたら良いのでしょうか? コンボボックスのリンクから参照したVLOOKUPだとセルのデータを上書きされると、式がなくなってしまうので、VBAで作成したいです。

  • ExcelVBAで選択されてる行番号を取得する方法

    Excelシートでどの行を選択してるのかをVBAで取得したいのです。 1行選択の場合や複数行選択。 あるいは飛び飛びでの選択もあります。 どうやって取得できるのでしょうか?

  • 特定の行を選択して別のシートにコピーするマクロ

    指定した行と、 特定の文字(複数)がある行を 全て選択し、別のシートにコピーする マクロをお教えいただけませんか?  選択したい行は(同じシートで)  必ず3行目と、  A列に『ABC』、『DEF』という文字がある全ての行です。 このようなマクロはどのように作ればいいでしょうか? マクロに詳しい方、お知恵をお貸し頂けませんでしょうか?

  • エクセルのマクロで行選択の選択範囲を変数指定する方法

    あるファイルのデータを別のファイルに行挿入でコピーするマクロを作ろうとしています。 コピー元の選択について、行範囲が固定であれば例えば   Rows("10:20").Select でよいのですが、コピー元行範囲がファイルにより異なるので変数化する必要があります。 単純には、 Sub Row_Copy() Dim AA, BB As Integer AA = 10 BB = 20 ' 10行目から20行目を行選択しコピーする Rows("AA:BB").Select '##ここが問題## Selection.Copy ' ' (簡単のため)同じシートに行挿入する例 Rows("30:30").Select Selection.Insert Shift:=xlDown End Sub ですが、これだと Rows("AA:BB").Select の部分でエラーになります。 いろいろとやってみましたが、どうしても何らかのエラーになってしまいます。Rowsは変数では使用できないのでしょうか? ちなみに、行範囲の選択ではなくRangeでセル範囲の選択をするという方法もありますが、複数ファイルのデータをコピー先の一つのファイルにマージするために行挿入でコピーしたいことと、列方向の柔軟性を持たせたいため、コピー元選択方法として行範囲の指定をしたいという趣旨があります。 また、1行毎のコピー・行挿入をデータの行数だけ繰り返すという手もありますが、データ量が多いとかなり処理時間がかかるためこれも避けたいと思っています。 マクロ初心者で知識不十分ですが、よろしくお願いします。

  • 選択したセルの値を別シートのセルに取り込む方法

    顧客情報を閲覧・印刷するためのフォームがsheet1とします。顧客の情報が入ったデータベースがsheet2とします。 以下のマクロでsheet2の48列目を空欄にして、48列のいずれかのセルに「出力」と入力すると、そのセルの行の値を出力結果というシートに渡すようにしています。取り込んだ行の顧客番号をsheet1のmach関数の参照先に指定して、index関数で各項目に取り込むようにしています。 Worksheets("sheet2").Activate Dim i, LastRow As Long LastRow = Cells(Rows.Count, 48).End(xlUp).Row For i = 1 To LastRow If Cells(i, 48) = "出力" Then Rows(i).Copy Sheets("出力結果").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) End If Next i もう少しこれを改良して、Sheet2の顧客番号の入っている1列目の任意のセルを選択して、sheet1のmatch関数の参照先(例としてK4)に選択した顧客番号を渡す方法はありませんでしょうか。sheet1は顧客番号だけ取得できれば、match・index関数でフォームが完成します。 VBAは初心者です。上記マクロは検索で調べて必要な個所をコピーして今の環境にアレンジしました。よろしくお願いします。