
Excel VBAで2列~4目の3行目以下すべてを選択する方法は、ないでしょうか?
2列~4目すべてを選択というのは、比較的簡単で、たとえば
Sub 2to4 ()
Worksheets("Sheet1").Activate
Columns("B:D").Select
End Sub
とでも書けばよいのでしょうが。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …
要はこれから3行目までを除外する方法があればいいわけですが、
そういう方法があったら教えてください。
今は、cells(2,1)から、cells(4,5000)までを選択といったように
原始的な方法でやってますが、この方法だと数字を大きくしすぎると
2003以前のバージョンでトラブり、数字を小さくしすぎると、選択しきれなかったりと…。
いろいろ不都合が多いので…。
No.3ベストアンサー
- 回答日時:
いろいろな書き方があると思います。
3つほど例をあげました。
2003とそれ以降ではシートの行数が違うので数値で失敗されたのだと思いますが、以下はバージョンにかかわらず大丈夫です。
Sub test01()
Worksheets("Sheet1").Activate
Range("B3:D" & Rows.Count).Select
End Sub
Sub test02()
Worksheets("Sheet1").Activate
Range("B3", Cells(Rows.Count, "D")).Select
End Sub
Sub test03()
Worksheets("Sheet1").Activate
Columns("B:D").Resize(Rows.Count - 3).Offset(3).Select
End Sub
この回答への補足
回答の趣旨は
要は、Rows.Countまで選択するということで、ある列のある行以降全ての行がExcelVBAで選択でき、
Columns.Countまで選択するということで、ある行のある行以降全ての列がExcelVBAで選択できるということですね。
■以下、ご報告。
http://www.gizcollabo.jp/vbtomo/log/archive/chos …
のような、cellsメソッドの失敗が、まれに出る以外、特に問題なく駆動しています。
Excel VBAで2~4列目の3行目以下を選択
Sub test01()
Worksheets("Sheet1").Activate
Range("B3:D" & Rows.Count).Select
End Sub
でうまくいきました。
いただいたものもうまくいき、
Sub test02()
Worksheets("Sheet1").Activate
Range(Cells(3, 2), Cells(Rows.Count, 4)).Select
End Sub
でうまくいきました。
55列~60列目の11行目以降(11行を含む)とする場合、Resize()内の数字をある程度大きくしないとうまくいきませんでした。
Sub test03()
Worksheets(1).Activate
Range(Columns(55), Columns(60)).Resize(Rows.Count - 12).Offset(10).Select
End Sub
だとうまくいきました。
Excel2000で
sub()
Cells(1, 2) = Rows.Count
end sub
と入力すると、Excel2000で65536と出るので、恐らく、
当該バージョンのExcelの行数=Rows.Countなのだと理解いたしました。また、Rows.Countで調べると、以下のサイトがヒットしました。
http://www.konomiti.com/vba01_3-2.html
この意味で、
Sub test02()
Worksheets("Sheet1").Activate
Range(Cells(3, 2), Cells(5, Columns.Count)).Select
End Sub
としてみると、特定の行の頭数個を飛ばして、選択するということも出来ました。
丁寧なご回答ありがとうございました。いずれの方法でもうまくいきました。
取り急ぎお礼まで。ありがとうございます。詳細は、補足にて、追ってコメントさせていただきます。
急いでいただいたのに申し訳ありません。
No.5
- 回答日時:
ANo3 merlionXXです。
> Sub test03()
> Worksheets(1).Activate
> Range(Columns(55), Columns(60)).Resize(Rows.Count - 12).Offset(10).Select
> End Sub
> だとうまくいきました。
.Resize(Rows.Count - 10).Offset(10)でないと
ワークシート一番下の2行は選択されてませんよ。
意味がわかりました。
要は、Rows.Count - 10以上にしないと、選択範囲がExcelの最大許容の行数をオーバーしちゃうということですね。ありがとうございました。
No.4
- 回答日時:
当初のご相談は
>3行目以下すべてを選択する
という事でしたのでシートの最下行まで選択する旨回答しましたが,現実には
たとえば
range("B3:D" & cells.specialcells(xlcelltypelastcell).row).select
はたまた
range(range("B3"), cells(cells.rows.count, "D").end(xlup)).select
などのようなことではないのですか。
回答ありがとうございました。下記のうち
Sub AA()
Range("B3:D" & Cells.SpecialCells(xlCellTypeLastCell).Row).Select
End Sub
は、要求仕様に合致しているように見えますが、
Sub AB()
Range(Range("B3"), Cells(Cells.Rows.Count, "D").End(xlUp)).Select
End Sub
は、B列のデータが入っている最終行の行数が、D列のそれより大きいときに、
B列の最終データが選択されていないので、要求仕様にあっていないようにみえます。
要は、。While文なんかで吐き出した、どこが終わりかわからないデータを
一斉にクリアしたいということです。
計算アルゴリズムによっては、どの行もデータ数が違う場合もある。
(例えば、乱数でA,B,C3グループにわけた人たちが、適当な時間に
待ち行列を作り、5分のアトラクションに入り、女性を優先して入場させた場合に、
アトラクションから出てきた人がいつ出てきたかの予想など。
No.2
- 回答日時:
次のようにしてはどうでしょう。
Range("B3:D3").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
データの入力が一か所には無くばらばらの行にある場合にはRange(Selection, Selection.End(xlDown)).Selectを追加して記載すればよいでしょう。
(3)の方法でうまくいったので、未確認ですが、取り急ぎお礼まで。ありがとうございます
確認して、補足にてコメントさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2022/04/01 12:11
- Visual Basic(VBA) vbaで条件付き書式を設定したときの適用範囲について 1 2023/07/17 23:14
- Excel(エクセル) エクセルVBAで次の二つを行いたいのですが思うように動きません。どう修正したらよいのでしょうか? 2 2023/04/22 14:55
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- Excel(エクセル) 「Excelのオプション」の「ユーザーインターフェイスのオプション」の設定値をVBAで取得したい 1 2022/07/31 23:49
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
このQ&Aを見た人はこんなQ&Aも見ています
-
【Excel VBA】指定行以降をクリアするには?
Visual Basic(VBA)
-
vbaで指定したセルより下の行を指定する方法について vbaの質問です。 例えば、「C6」セルより下
Excel(エクセル)
-
エクセルである行以下全部を削除する方法
Excel(エクセル)
-
-
4
Excel VBAでn行毎に行の選択
Excel(エクセル)
-
5
エクセル マクロ 最終列までを全選択
Excel(エクセル)
-
6
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
7
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
8
文字列の結合を空白行まで実行
Visual Basic(VBA)
-
9
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
10
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
11
範囲指定したセルを1つずつ飛ばす方法
Visual Basic(VBA)
-
12
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
13
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
14
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
15
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
16
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
17
入力後に日付順になるように自動で並び替えしたいのです。
Excel(エクセル)
-
18
EXCEL VBA 文中の書式ごと複写するには
Visual Basic(VBA)
-
19
マクロで特定の行まで削除する方法を探しています。
Excel(エクセル)
-
20
【VBA】シート名に特定文字が入っていたらマクロを実行したいです。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
outlookのメールが固まってしま...
-
大学のレポート A4で1枚レポー...
-
英数字のみ全角から半角に変換
-
エクセルで特定のセルの値を別...
-
エクセルVBAで1004エラーになり...
-
Office2021を別のPCにインスト...
-
MSオフィス2013にMS365が上書き...
-
Microsoft365について
-
Excelで〇のついたものを抽出し...
-
Teams内でショートカットって貼...
-
別シートの年間行事表をカレン...
-
Microsoft Formsの「個人情報や...
-
Excelで空白以外の値がある列の...
-
office2019 のoutlookは2025年1...
-
エクセルマクロ(超初心者)
-
Excelの関数(FILTER関数)につ...
-
Microsoft365搭載Windows11PCへ...
-
会社のOutlookにてメールを予約...
-
「生産性ソフトウェア」とは何...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAで2~4列目の3行目...
-
VBA初心者です。工場の仕事の負...
-
エクセルVBAの配列について
-
VBAで保存しないで閉じると空の...
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
複数のマクロボタンをまとめて...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
エクセル ボタンに設定したマク...
-
Excelのマクロでボタンを押すと...
-
マクロの保存先、開いてるすべ...
-
エクセル マクロ名にブック名...
-
エクセルでマクロ(Excel 4.0)...
-
Excelマクロで、稼働中のマクロ...
-
エクセルで、「いいね」のよう...
-
エクセルのvbaにて thisworkboo...
-
Excelでマクロ実行中に画面を固...
-
EXcelのマクロで相対パスでファ...
-
【Excel】マクロの保存先について
おすすめ情報