• ベストアンサー

エクセルマクロの行選択

Wendy02の回答

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 回答は、すでに出ていますが、当分は、Rows(i &":" & j).Select のような書き方でよいと思います。(VB系以外の人からみると、かなり乱暴な書き方に見えるようですが、これが、VB系の利点でもあります。自動キャスティングで、i も j も、& ":" &で、文字になってしまうのですから。) 他の書き方で、Rangeオブジェクトを使う方法は、その上位オブジェクトが見えていないと、実行時エラーを起こします。Rangeオブジェクトのプロパティは、その中に、Rangeオブジェクトを入れられますが、外と中のオブジェクトとは、一切のつながりがありませんから、ミスをしやくすなります。だから、私は、With ステートメントを使います。 With ActiveSheet  .Range(.Cells(i, 1), .Cells(j, 1)).EntireRow.Select End With また、今回のような場合は、 Rows(i).Resize(k).Select i で行を決めたら、k は、それから何行という書き方で、Resize プロパティを使うことが多いです。

tanaka2030
質問者

お礼

ありがとうございます。 &”の使い方がいまいちよくわかりません。 >自動キャスティングで、i も j も、& ":" &で、文字になってしまうのですから。 とは?簡単に教えてください。 今回とは違う使い方もあるようで?です。→" & 変数 & "

関連するQ&A

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

    教えてください。エクセルマクロで… 変数iを使って、たとえばi行目からi+2行目を選択したい場合、  rows( ) の括弧の中はどういう風に記述すれば良いのでしょうか。 お願いします。

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

    エクセル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行目までが非表示になるようにしたいのです。御教示下さいませ。

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

    あるファイルのデータを別のファイルに行挿入でコピーするマクロを作ろうとしています。 コピー元の選択について、行範囲が固定であれば例えば   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行毎のコピー・行挿入をデータの行数だけ繰り返すという手もありますが、データ量が多いとかなり処理時間がかかるためこれも避けたいと思っています。 マクロ初心者で知識不十分ですが、よろしくお願いします。

  • エクセル マクロ記述(変数を使用した行選択)

    はじめまして。現在マクロで仕事に必要な操作を組んでいます。まだ勉強を始めたばかりで分からないところがあります。以下の操作をしたい場合、記述はどのようにすればよろしいでしょうか? 複数行の選択方法 ○5行目から27行を選択したい場合、以下の記述で  操作確認済みです。  Rows("5:27").Select ○しかし、実際は最後の行が決まっていないため、  最終行の数字を変数として扱いたいのです。  その最終行の数字をF1のセルに記載するようしています。  記述を以下のようにしましたがエラー表示になります。  変数名をintlineとした場合  dim intline as integer  intline=range("f1")  rows("5":intline).select 初歩的な質問かもしれませんが、ご存知の方は教えていただけますか? 宜しくお願いいたします。

  • エクセル VBAで複数行の選択

    エクセル2002使用です。 VBAで変数を使って複数行の選択で、6行目から9行目までを選択したいのです。 sub macro2() Dim rw As Integer rw=8 Rows("rw - 2:rw + 1").Select end sub だとエラーになります。 Rows("6:9").Select のようにしたいのですがどこが悪いのでしょうか? よろしくお願いします。

  • マクロでの行選択

    Excelのマクロについて質問です。 例えば、A1~A5セルをセル結合したときに、3行目~5行目を行選択 しようとしたときに手動で行なうとうまく選択できるのですが、マクロ で実行するとなぜか結合されている1行目から5行目が選択されて しまいます。 具体的に以下のようなマクロを書きました。 Rows.("3:5").select 手動のみでマクロ化は無理なのでしょうか? 今のままですと、一回連結をといてセルを選択して処理を実行、その のちにセルを再び連結させるということをやらなければいけなくなって しまいます。

  • エクセル VBA の行選択

    エクセルVBAで行を選択する場合 Rows(1,1).select Range(Cells(2,2),Cells(5, 5)).EntireRow.Select の方法があると知りました。 この数値の部分に変数を入れるとエラーがでてしまいました。 どうすれば変数で行を選択することができるのか教えてください。 2003を使用しております。

  • 変数を使って行選択

    おそらく他愛のない質問だとは思うのですが教えてください。 Rows(3:3)select とやると、アクティブなシートの3行目が選択されると思います。 3のところを両方とも変数にするとか、 たとえばforを使ってカウントアップさせている変数の値と同じ行を 選択させるにはどのように入力すれば良いものでしょうか? ご教授願います。

  • EXCELマクロデータのある行より下の行削除の構文

    EXCELマクロ構文について教えてください。 データのある行のひとつ下の行全体選択し、 Ctrl+Shift+↓で下部行全て選択し、右クリックで削除する 操作をマクロにしたいのでですが、 マクロ記録では上の操作は Rows("189:189").Select Range(Selection, Selection.End(xlDown)).Select Selection.Delete Shift:=xlU  になります。 この 189 という数字は 下記の変数定義で「lastRow」として取得できるのですが Dim lastRow As Long lastRow = Sheets("2CVS関西").Cells(Rows.Count, 2).End(xlUp).Row + 1 189にlastRow に置き換える方法お教えください。

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

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