- ベストアンサー
A1から最下行までを選択するVBA
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select ActiveSheet.Paste Sheet2のA1に貼り付けます。
関連するQ&A
- 複数行の最下行の範囲選択
こんにちは、マクロ初心者です。 A B C D E F G H I 1 あ あ あ あ あ あ 2 あ あ あ あ あ あ 3 あ あ あ 4 あ あ 5 あ あ 6 あ あ 7 あ あ 8 あ あ 9 あ 10 上記のような表があるとき セル"A"列から"I"列までの最下行にあたる行を検索し、 更に最下行までの範囲をコピーして、別シートにコピーさせたいのです。 (上記の例だと、セル"A1"~"I9"の範囲をコピーする) Range("A1", Range("I1").End(xlDown)).Select Selection.Offset(0, 0).Select 上記のコードでできると思ったのですが、なぜか不必要な範囲まで選択されてしまいます。 (下方向に数行余計に選択されてしまう) これではダメなのでしょうか? ちなみに、数式などは入っておらず、入力されていないセルは全て空白です。 A列だけの最下行を選択するというのは簡単に出来たのですが、このように複数の範囲を 選択する場合は、どのようにコードを書くべきでしょうか。 マクロのスキルが無い為困っています。 アドバイスをよろしくお願いいたします。
- ベストアンサー
- Visual Basic
- VBA 動作の後、動作した行のA列にカーソルを移動
エクセル2010を使っております。 以下の動作を自動記録したプロシージャが次のものですが、これに改良を加えたくて、 相談させていただきました。 (1)一覧というシートにおいて、A3セルからCtrl + ↓でA列の入力行の最下行に異動して、 そのセルの値をコピーし、A3セルに貼りつける、 (2)請求書というシートを選び、印刷する。 (3)一覧というシートに戻り、A列の入力行のうちの最下行に異動する。 ※A3セルに値を貼りつけると、3行目のB列以降→請求書シートという順にデータが飛び、 4行目からのデータを適宜に印刷したい思っております。 Sub 印刷() Range("A3").Select Selection.End(xlDown).Select Selection.Copy Range("A3").Select ActiveSheet.Paste Application.CutCopyMode = False Sheets("請求書").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False Sheets("一覧").Select Selection.End(xlDown).Select End Sub 改良したい点としては、以下のとおりです。 (1)A列の入力行の最下行ではなく、カーソルのある行(編集可能にしているとは限らない)の A列の値をA3セルに貼りつけるようにするにしたい。 (2)印刷した後、一覧シートのA列、最下行(印刷した行)にカーソルが移動するようになっていますが、体感的な動きとしてはそれと同じく、印刷した行(最初にカーソルのあった行)のA列にカーソルが移動するようにしたい。 どなたか、教えていただけると助かります。 よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- VBA、セルの選択範囲について
下記のような表を用意し、 A B C D E 1 1月 2月 3月 合計 2 Aさん 1 2 3 6 3 Bさん 1 2 3 6 4 Cさん 1 2 3 6 5 合 計 3 6 9 18 セルの範囲選択を指定し別シートの任意のセルへコピーをVBAで行いたいのですが、 Aさん、Bさん、Cさんという範囲を選択する為に、合計という文字は含みたくないので、 Range("A2").Select Range(Selection, Selection.End(xlDown).Offset(-1)).Select と記載し、これは出来ました。 同様に、 1月、2月、3月という範囲も同様にxlToRightを使用し選択出来ました。 Range("B1").Select Range(Selection.End(xlToRight).Offset(, -1), Selection).Select しかし、B2:D4の範囲の指定の仕方がわかりませんでした。 データのレコード数は一定ではないのでB2:D4というように範囲を指定する事は出来ません。 そのときに応じてDさん、Eさんと増えたり、4月、5月と増えたりするので。 何か方法があればご指導お願いします。
- ベストアンサー
- オフィス系ソフト
- Excel VBA 選択方法を教えてください。
Excel2002でリスト作成してデータを入力します。A列の最下行を選択して、例えば(A12)から、(H2)まで選択したいのですが、VBAでどのように記述したらよいのでしょうか。 Range("A65536").End(xlUp).Offset(0).Select を使用したVBAを使用したいと思っています。 この選択範囲をコピーして、異なったシートに貼り付けたいのですが、 下から選択して、貼り付けた場合、何か注意することはありますでしょうか。 宜しくお願い致します。 それと、値のみをクリアにして、計算式を残した削除方法ってVBAであるのでしょうか。 あわせて宜しくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- Excel2007で最下行のコピーについて
Excel2007で最下行のコピーについてなんですが、上手くいきません。そこで質問させて頂きます。 sheet3のセルO6、セルP6、セルQ6から下に向かって5000行目までに格子と関数が既に入ってます。 が、しかしコピーをしたい数値は今のところはO、P、Qの6行目にとどまっています。なので最下行はセルOPQの6行目になります。 sheet3のセルOPQの最下行数値をsheet4のセルABCの2行目にコピぺしたいです。 そこで作ってみました。基軸と言いますかsheet1を選択してから標準モジュールに Sub test() Worksheets("sheet3").Select Dim n As Long,t As Long n = Cells(Rows.Count,"O").End(xlUp).Row + 1 t = Cells(Rows.Count,"Q").End(xlUp).Row + 1 Range("O" & n, "Q" & t).Value.Select Selection = Worksheets("sheet4").Range("A2:C2").Value End Sub と書きましたがエラーになります。どの様すればよろしいですか?お願い致します。
- ベストアンサー
- Excel(エクセル)
- エクセルVBAの貼付けについて
エクセルVBAの貼付けについて シートAとBがあって、シートBの1~7列をコピーし、シートAの最終行に貼り付ける方法を教えて下さい。 下記のように書いてみたのですがダメでした。 Sheets("B").Select Rows("1:7").Select Selection.Copy Sheets("A").Select With Range("A1").End(xlDown).Offset(1, 0) .ActiveSheet.Paste End With
- ベストアンサー
- その他(プログラミング・開発)
- エクセル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:範囲選択について
初歩的な質問ですが、よろしくお願いします。 Excel2000です。 グラフを描くための範囲選択をしたいのですが、うまくいきません。 状況は、 ・列A、列Bにデータが入っている。(データの数はAB同じで2行以上) ・開始点は一定。(ここでは、行10と仮定します) ・終了点が変化する。(但し、終了点は常に一番下のデータ) これだけです。 一番下のデータを参照するので、 Range("A10 : Range("B10").End(xlDown)").Select Range("A10 : Range("B65536").End(xlUp)").Select Range("A10 : Cells(ActiveSheet.Rows.Count, 2).End(xlUp)").Select と書きましたが、全てダメでした。 直接書くのがダメなら変数を使おうと思い、 Dim StopCell as Range Set StopCell = Range("B65536").End(xlUp) Range("A10 : StopCell").Select と書きましたが、ダメでした。 このとき、変数StopCellには「セル」ではなく、「セルの値」が代入されているようです。 Valueと書いていないのに値が代入されていること、オブジェクト変数なのに数値が代入されていることが納得できません。 どこをどのように間違えているのでしょうか。 また、目的のマクロはどのようになるのでしょうか。 大村あつし著「かんたんプログラミングExcel2000VBA基礎編」および「同 コントロール・関数編」で勉強していますが解決しません。 ご教授ください。
- ベストアンサー
- Visual Basic
- VBAでコマンドボタン操作で他のシートにコピーする方法を教えてください。
エクセルのVBAでコマンドボタン操作でセルの値を他のシートのセルへコピーしたいのですが、やり方がわかりません。 自分なりに作ってみたのですが何が悪いのか教えてください。 Private Sub CommandButton1_Click() ' Range("A1").Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Select ActiveCell.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False End Sub Private Sub が怪しいのですが対処もわかりません。 ちなみにsheets2のA1には値がはいっています。 よろしくおねがいします。
- 締切済み
- Visual Basic
- エクセルVBAでセル選択するコードが変
エクセルのワークシートでVBAでセル選択するコードで理解に苦しむことがあります。 通常、Cells(2, 1)はセル番地で言えばA2セル Cells(4, 1)はセル番地で言えばA4セルです。 しかし、 With .Range("B5:B15")でくくれば .Cells(2, 1)はセル番地で言えばB6セルだと思います。 .Cells(4, 1) はセル番地で言えばB8セルだと思います。 ところが下記のコードを動かすと、なぜかC10:C12が選択されてしまいます。 この理屈がわかりません。 Sub test02() With Sheets("Sheet1") With .Range("B5:B15") .Range(.Cells(2, 1), .Cells(4, 1)).Select End With End With End Sub なお、 .Range(.Cells(2, 1), .Cells(4, 1)).Selectを .Range(“A2:A4”).Selectに書きかえると、希望のB6:B8が選択されます。
- ベストアンサー
- Excel(エクセル)
お礼
うまくいきました。 素早いご回答ありがとうございました。