こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ExcelのVBAがオーバーフローに!?

読んで頂きありがとうございます。
以前に質問しました時に回答を頂き凄く助かっていたのですが、何故か「オーバーフロー」と表示されてしまいます。
ひょっとしたら桁なのかも知れません。
下記のVBAを教えて頂きしようしていました。
Option Explicit
Sub Test()
Dim c(), p(), q(), i, j, l, r, k As Long
r = Range("B2").End(xlDown).Row
l = Range("D2").End(xlDown).Row
ReDim c(r - 2), p(r - 2), q(r - 2)
For i = 1 To r - 2
c(i) = Cells(i + 2, 2).Value
p(i) = Cells(i + 2, 3).Value
q(i) = i + 2
Next i
For i = 1 To r - 3
For j = i + 1 To r - 2
If c(i) > c(j) Then
k = c(i)
c(i) = c(j)
c(j) = k
k = p(i)
p(i) = p(j)
p(j) = k
k = q(i)
q(i) = q(j)
q(j) = k
End If
Next j
Next i
For i = 1 To r - 2
Cells(i + 2, 7).Value = c(i)
For j = 3 To r
If Cells(j, 4).Value = c(i) Then
Cells(i + 2, 8).Value = p(i) - Cells(j, 5).Value
If p(i) - Cells(j, 5).Value <> 0 Then
Range("B" & q(i)).Interior.ColorIndex = 6
Range("D" & j).Interior.ColorIndex = 6
End If
Exit For
End If
Next j
Next i
For i = 3 To r
k = 0
For j = 3 To l
If Cells(i, 2).Value = Cells(j, 4).Value Then
k = 1
Exit For
End If
Next j
If k = 0 Then
Range("B" & i).Interior.ColorIndex = 35
End If
Next i
For i = 3 To l
k = 0
For j = 3 To r
If Cells(i, 4).Value = Cells(j, 2).Value Then
k = 1
Exit For
End If
Next j
If k = 0 Then
Range("D" & i).Interior.ColorIndex = 35
End If
Next i
End Sub

デパックのClickすると15行目辺りの「k = c(i)」が黄色くなります。
正直言ってマクロとか全く解りませんが、コピーして使っていました。
どこをどう変更すれば良いのか教えて頂ければ助かります。
よろしくお願いします。

投稿日時 - 2016-10-19 10:08:30

QNo.9244723

すぐに回答ほしいです

質問者が選んだベストアンサー

3行目の
Dim c(), p(), q(), i, j, l, r, k As Long

Dim c(), p(), q(), i, j, l, r, k
とすれば動くと思います。

投稿日時 - 2016-10-19 11:53:26

お礼

早速のご回答ありがとうございました。
上手く動いているようです。
助かりました。
本当にありがとうございました。

投稿日時 - 2016-10-19 14:45:49

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

http://www.officepro.jp/excelvba/

正直で良いですね。参考にどうぞ。

私も正直に。
丸投げは嫌いなので、質問の通りにはしたくありません。


こう書くと、天の邪鬼な方がやってくれるかもしれないです。

あと、どこかのサンプルをコピペしたなら、そのサイトとURLを貼った方が良いですよ。

インデントされていないコードは読む気が下がります。

>「オーバーフロー」と表示されてしまいます

オーバーフローとだけエラーが表示されたわけではないでしょう。正確に表示されたままを書きましょう。

>デパックのClickすると
デバッグですよね。
この程度ならわかると思いますが、ソースコードの質問のものと、実際に書いたもので同じようなミスもありそうです。

あとは、実際のExcelブックの内容や、Excelのバージョン等も書いておくと良いと思います。

投稿日時 - 2016-10-19 10:47:56

お礼

色々とアドバイスありがとうございました。
大変失礼な質問文になってしまい申訳ありませんでした。
また何かありましたら質問させて頂きます。
その時はもっと正確に記載するよう心掛けます。

投稿日時 - 2016-10-19 14:47:36

あなたにオススメの質問