|
▼初心者さっち さん:
>>結果は、イミディエイトで見てください。
この結果は、どうでしたか?
想定通りのアドレスが表示されましたか?
>> Dim Sou_adr() As String 'コピー元のアドレス配列
〜
>> 'コピー元のアドレス生成
>> ReDim Sou_adr(0): i = 0
> 'Sou_adrに1つ配列を割り当てる? 0だけを割り当てる?
Sou_adrは『動的配列』で宣言しています。
ReDim Sou_adr(0) で、中身はカラッポと明示しています。
今回のコードでいけば、無くても動きます。
>> For r = 11 To 1027 Step 4
>> For c = 18 To 36 Step 9
> 'なぜ9飛ばしの36までなのですか?
コピー元のカラムは、
R=18列, AA=27列, AJ=36列 と9飛ばしの法則性がありました。
>> ReDim Preserve Sou_adr(i)
> '配列の最後の要素数をiにする?
ちょっと違います。別レスにサンプルを書いてみます。
>> Sou_adr(i) = Cells(r, c).Address(0, 0)
> 'Address(0,0)ってどういうことですか?
これは、ヘルプを見てください。
>> 'コピー先のアドレス生成
>> ReDim Des_adr(0): i = 0
>> Col(1) = "c": Col(2) = "E": Col(3) = "H"
>> Col(4) = "K": Col(5) = "M": Col(6) = "P"
>> For r = 5 To 2100 Step 16 '実際は To ・・いくつ?
> 'toは、上の1207のデータが転記されるまでなのですが。
> わからないです。
rは、rowの意図で書きました。
転記先のrowは、何行目まで使うのか? ということです。
>すいません。難しいっす。
>夕食を食べながらでもいいので、サルでも解るような解説をお願いします。
そうですね・・・ちょっとややこしかったですね。
もっと良い案が出るかもしれませんので、厳しかったらスルーしてください。
【考え方】
法則性の違う2つアドレスを同時に生成しながら、
ループを回そうとすると頭が混乱します。
まずは、配列(今回は、Sou_adr と Des_adr)に、
1対1の関係になるようにアドレスを整列します。
1対1の関係の関係になれば、
後は必要な回数ループを回してコピーして行けば良いと考えました。
Sou_adr(0) から Des_adr(0) へコピー
Sou_adr(1) から Des_adr(1) へコピー
・
・
|
|