VBAからVBへ変更
お世話になります
今現在エクセルVBAにてエクセルファイル7ファイルをコントロールしています。
とりあえず手っ取り早く動作優先で作ったのでVBAで作りましたが、
VB6.0にて機能を増やしてアプリ化しようと思っていますが、元ネタを動作優先で作ったため、あちこちベタ書きのところもあります。
VBに置き換えの際、インデックスを使ったほうが処理上良いのでしょうか?
又処理内容上
FOR nextやプロシージャを使用してのプログラミングが処理内容上上手くいかないまたは困難なところがあったので、今では使用しない
IF **** Then Goto AA
AA:
***
****
等古い書き方を多用していますが、考え直したほうがよろしいでしょうか?
サポートは私だけなので、私がわかればいいのでVBAのまま継承できるところは継承したいのですが、処理問題としてどうなのでしょうか?
ご教示お願いします。
プログラムの部分抜粋
Windows("" & Sfn & ".xls").Activate
For j3 = 0 To 18
For i1 = 1 To 2500
Hl1 = Workbooks("" & Sfn & ".xls").Sheets(Ss1).Cells(i1, j1 + j5 + j3).Value
If Snn = Hl1 Then
Workbooks("" & Sfn & ".xls").Sheets(Ss1).Cells(i1, j2).Resize(, 6).Copy
貼り付け ← 行き先プロシージャ
Else: 読取列変更 ← 行き先プロシージャ
If i2 >= Wsc Then Wb = 1
If Hl1 = 0 Then Book終 ← 行き先プロシージャ
If Ce1 > 7 Then GoTo AX ←行き先別行
End If
Next
If i1 >= 5 Then j3 = j3 + 6
i1 = 1
j2 = j3 + 1
j3 = j3 - 1
Next
AX:
If Wb = 1 Then GoTo AE ← 行き先別行
i2 = i2 + 1
GoTo AC ← 行き先別行
--------------------------------
Sub Snn確定()
If i6 = 1 Then Snn = Sn1
If i6 = 2 Then Snn = Sn2
If i6 = 3 Then Snn = Sn3
If i6 = 4 Then Snn = Sn4
If i6 = 5 Then Snn = Sn5
If i6 = 6 Then Snn = Sn6
If i6 = 7 Then Snn = Sn7
If i6 = 8 Then Snn = Sn8
If i6 = 9 Then Snn = Sn9
If i6 = 10 Then Snn = Sn10
If i6 = 11 Then Snn = Sn11
If i6 = 12 Then Snn = Sn12
If i6 = 13 Then Snn = Sn13
If i6 = 14 Then Snn = Sn14
If i6 = 15 Then Snn = Sn15
If i6 = 16 Then Snn = Sn16
If i6 = 17 Then Snn = Sn17
If i6 = 18 Then Snn = Sn18
If i6 = 19 Then Snn = Sn19
If i6 = 20 Then Snn = Sn20
If i6 = 21 Then Snn = Sn21
If i6 = 22 Then Snn = Sn22
If i6 = 23 Then Snn = Sn23
If i6 = 24 Then Snn = Sn24
If i6 = 25 Then Snn = Sn25
If i6 = 26 Then Snn = Sn26
If i6 = 27 Then Snn = Sn27
If i6 = 28 Then Snn = Sn28
End Sub
思いっきりベタ書きです
--------------------------------
お礼
どうもありがとうございます。 助かりました。m( )m