質問: excel vbaでn行毎に行の選択 excel vbaでn行毎に行の選択 こんにちわ。 初めて質問をさせて頂きます。 今回excelのvbaを使ってあるシートを作成することになったのですが その過程で分からず、詰まっております。 色々調べてみたもののvbaの知識が浅いせいか 該当する様なものは見つかりませんでした。 実行したいのはタイトルの通りです。 例として10行毎に1行ずつ選択したい場合は下記の通りです。 a列 10行目←選択 ・ ・ 20行目←選択 ・ ・ 30行目←選択 ・ ・ 40行目←選択 実際にやりたいことは行を選択後に入力規則を入れたいだけなのですが 5000行近くあるので、一つ一つコードを書く場合 range("a10,a20,a30,a40・・・").entirerow.select 結構な量になります・・・。 vbaなら他にもっと効率いいことができるのでは、と 自分なりに探してはいますが、どうしても見つからないので 皆様のお知恵をお借りしたいです。 よろしくお願いします。
回答: 一気に選択してやろうとしているのでしょうか。 じゃなくて、一行づつ入力規則を入れて、それを繰り返せばいいです。 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つめの項目。