過去ログ

                                Page     606
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼範囲の指定について  mumumu 03/1/24(金) 14:10
   ┗Re:範囲の指定について  JuJu 03/1/24(金) 15:07
      ┗Re:範囲の指定について  mumumu 03/1/24(金) 15:30

 ───────────────────────────────────────
 ■題名 : 範囲の指定について
 ■名前 : mumumu <mumumu@wa-o.net>
 ■日付 : 03/1/24(金) 14:10
 -------------------------------------------------------------------------
   またまた、簡単な質問で申し訳ないのですが教えて下さい。

Range(A3:G5)のように指定する場合に、行数の3や5の部分が
変化していくので、変数で指定したいのですが、どう書けばいいのでしょうか?

セル(K1)に数字が入っていて
A列の数字は ○*5+3 という式から計算されます。○には最初0(ゼロ)を
入れます。ですからA列の最初は3です。
G列の数字は上で計算した数字に2プラスした数字です。
ですからG列の最初は5です。
一度処理を行った後、次は○には1入ります。○の数字は1つずつ整数で
増えていきます。つまりA列は3,8,13...と変化していき
G列は5,10,15...と変化していきます。
○=K1まで続けて処理は終了になります。

説明がわかりにくいかもしれませんが、よろしくお願いします。
 ───────────────────────────────────────  ■題名 : Re:範囲の指定について  ■名前 : JuJu <juju-bbs@su-u.com>  ■日付 : 03/1/24(金) 15:07  -------------------------------------------------------------------------
   mumumuさん、こんにちは

>Range(A3:G5)のように指定する場合に、行数の3や5の部分が
>変化していくので、変数で指定したいのですが、どう書けばいいのでしょうか?
>セル(K1)に数字が入っていて
>A列の数字は ○*5+3 という式から計算されます。○には最初0(ゼロ)を
>入れます。ですからA列の最初は3です。
>G列の数字は上で計算した数字に2プラスした数字です。
>一度処理を行った後、次は○には1入ります。○の数字は1つずつ整数で
>○=K1まで続けて処理は終了になります。

0からK1まで繰り返しですので、こんな感じです。

 For i = 0 To Range("K1").Value
   ' ここで処理
 Next

ここまでは分かりますか?

で選択の処理ですが色々方法がありまして、

1.単純に文字列連結してアドレスを作成

  Range("A" & CStr(i * 5 + 3) & ":G" & CStr(i * 5 + 5)).Select

2.基点からサイズを変更

  Cells(i * 5 + 3, 1).Resize(3, 7).Select

3.初期範囲から移動

  Range("A3:G5").Offset(i * 5).Select

4.その他^^;

2とか3がお勧めです。
状況によって使い分けるのも良いかもしれませんね。

ではではぁ
 ───────────────────────────────────────  ■題名 : Re:範囲の指定について  ■名前 : mumumu <mumumu@wa-o.net>  ■日付 : 03/1/24(金) 15:30  -------------------------------------------------------------------------
   ▼JuJu さん こんにちは^^

> For i = 0 To Range("K1").Value
>   ' ここで処理
> Next
>
>ここまでは分かりますか?

はい。おっけーです。
私はDo...Whileでやればいいのかなと
考えていたのですが、JuJuさんの答えの方が
自分にもわかりやすいのでこっちに変更しました。('◇')ゞ
Whileの後になんと書けばよいのかも密かに悩んでおりましたので。

>で選択の処理ですが色々方法がありまして、
>
>1.単純に文字列連結してアドレスを作成
>
>  Range("A" & CStr(i * 5 + 3) & ":G" & CStr(i * 5 + 5)).Select
>
>2.基点からサイズを変更
>
>  Cells(i * 5 + 3, 1).Resize(3, 7).Select
>
>3.初期範囲から移動
>
>  Range("A3:G5").Offset(i * 5).Select
>
>4.その他^^;
>
>2とか3がお勧めです。
>状況によって使い分けるのも良いかもしれませんね。

私が想像していたのは、1の答えのようなものでした。
でも、3が一番簡単でわかりやすい気がしたので、これでやってみたら
うまく行きました。

ありがとうございます。
いつものことなのですが、条件などを決める方法を何を使えばいいのかで
悩み、処理のやり方で悩み。。。。躓いてばかり。
なかなか学習能力がないというか、応用できないというか(^^ゞ

助けていただいて本当に嬉しいです。
ありがとうございました。
またよろしくお願いいたします。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 606