|
▼新参者5 さん:
>>ファイルが4つあれば演算式の列は、D列、H列、L列、O列です。
ほんとにそうですか?
前に提示したCheckプログラムにちょっと追加したものです↓。
試してみてください。
Sub Test1b()
Dim t As Long
Dim w As Long
Dim u As Long
t = 4 'ファイル数
u = 2
For w = u To t * 4
Debug.Print "w="; w, "u="; u, "(u+2)列="; AlphaCol(u + 2)
u = u + 4
Next
End Sub
Sub Test2b()
Dim t As Long
Dim w As Long
Dim u As Long
t = 4 'ファイル数
For u = 2 To t * 4 Step 4
Debug.Print "u="; u, "(u+2)列="; AlphaCol(u + 2)
Next
End Sub
Function AlphaCol(i As Long) As String
Dim n As Long, m As Long
Dim ss As String
n = (i - 1) \ 26 '上位 Alphabet
m = (i - 1) Mod 26 '下位 Alphabet
If n Then ss = Chr$(&H40 + n)
AlphaCol = ss & Chr$(&H41 + m)
End Function
ファイルが4つのとき( t = 4のとき)
Sub Test1b() の結果は こうです。
w= 2 u= 2 (u+2)列=D
w= 3 u= 6 (u+2)列=H
w= 4 u= 10 (u+2)列=L
w= 5 u= 14 (u+2)列=P
w= 6 u= 18 (u+2)列=T
w= 7 u= 22 (u+2)列=X
w= 8 u= 26 (u+2)列=AB
w= 9 u= 30 (u+2)列=AF
w= 10 u= 34 (u+2)列=AJ
w= 11 u= 38 (u+2)列=AN
w= 12 u= 42 (u+2)列=AR
w= 13 u= 46 (u+2)列=AV
w= 14 u= 50 (u+2)列=AZ
w= 15 u= 54 (u+2)列=BD
w= 16 u= 58 (u+2)列=BH
(u+2)の 列は D,H,L,P ... と変化していますよ?
さらに、BH列までループしてますよ? ファイルは4つなのに??
>uの配列は貴殿がおっしゃる通りに組んだ場合、
>公式(演算式)を参照する列はズレないのですか?
ですから、正解の列番号の並びが D,H,L,P,X... であれば ズレは無いといえるし、
>>ファイルが4つあれば演算式の列は、D列、H列、L列、O列です。
であれば、 Step 4 のルールを途中で逸脱しているから、ズレは必ず生じると
いえます。
>
>まだ貴殿のマクロを実行していませんので何とも言えませんが・・・
>私が組んだVBAだと、U+2列の演算式の参照する列がズレる訳を
>できましたらお教え頂けないでしょうか。
何をどうやっているかについての説明が不十分ですので、「訳」はこちらでは
わかりません。
どうかステップ実行して 変数の変化と処理の流れをご自分でデバッグしてください
。
>
>更に質問させて頂きますと、
>Wは確かにいらない変数ですが、
>Wがあっても問題にならないのでは・・・
不要な変数は削除して、プログラムの可読性を高めるべきです。
可読性といえば、さんざん言われていることですが、
インデントをしっかりつけましょう。
|
|