- ベストアンサー
Excel VBAで行の選択方法についての質問
- ExcelのVBAを使用して、行をn行ごとに選択したい場合の方法について質問です。具体的には、5000行近くあるシートの行を選択して入力規則を設定したいと思っていますが、Rangeメソッドを使用して一つ一つ行を指定するのは手間がかかります。効率的な方法を教えていただきたいです。
- ExcelのVBAで行を選択する方法について質問です。特定の条件に基づいてn行ごとに行を選択したい場合、どのようなコードを使用すればよいでしょうか?シートには5000行近くのデータがあり、一つ一つの行を指定するのは手間ですので、効率的な方法を教えていただきたいです。
- ExcelのVBAを使用して、n行ごとに行を選択する方法を教えてください。5000行近くあるシートの行を選択して入力規則を設定したいと思っていますが、一つ一つの行を指定するのは手間がかかりますので、効率的な方法があれば教えていただきたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
色々なやり方があるでしょうが一例です。 Sub Macro1() Dim i As Long Dim r As Range Set r = Cells(10, 1) For i = 20 To 5000 Step 10 Set r = Union(r, Cells(i, 1)) Next i r.EntireRow.Select End Sub
その他の回答 (2)
- soixante
- ベストアンサー率32% (401/1245)
#2です。 すみません。さきほどの例示コード、 入力規則の内容もですが、行の範囲も適当にアレンジしてください。 とりあえず仮で、 Range(Cells(r,1),Cells(r,10)) としておりますので。 (A~J列)
- soixante
- ベストアンサー率32% (401/1245)
一気に選択してやろうとしているのでしょうか。 じゃなくて、一行づつ入力規則を入れて、それを繰り返せばいいです。 Sub AAA() Dim r As Integer Dim Rng As Range For r = 10 To 5000 Step 10 Set Rng = Range(Cells(r, 1), Cells(r, 10)) With Rng.Validation .Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:="10", Formula2:="100" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = True End With Next r Set Rng=Nothing End Sub ※入力規則の内容によって、適当にアレンジください。 マクロの自動記録で見てもいいですけどね。 http://www.moug.net/tech/exvba/0050121.htm http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_validation.html ↑上から3つめの項目。
お礼
丁寧にありがとうございます 1行ずつ入力規則を入れることは 思いつきませんでした・・・。 思いついても構文が全くわかりませんでしたが^^; VBAの奥深さには驚かされました 今回提示して下さった構文も一つ一つ理解行きたいと思います。 ありがとうございました!
お礼
まさに考えてた通りの動作で感激です。 一つ一つの構文がどう動くか早速色々調べてみたいと思います ありがとうございました