[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エラー9インデックスが適用範囲外です』(だい)
上記エラーが出て困っています。
マクロの内容は、CSVファイルのデータの一部を取り出すもので、起動させるとエラーが
出ます。
パソコンによって、出る場合と出ない場合があるのですが、法則がわかりません。
ちなみに、OSはWin98、Excel2000です。
Sub Macro2()
Dim ファイル名 As String
Dim ファイル数 As Variant
Dim 規定ファイル名 As String
Dim 保存ファイル名 As Variant
Dim 桁数 As Integer
Dim L As Integer
Dim LL As Integer
Dim i As Integer
ファイル名 = InputBox("読み込むファイル名を入力してください。", "データー読み込み", "")
If ファイル名 <> "" Then
GoTo AA
Else: GoTo CC
End If
ファイル名 = ファイル名 + ".csv"
AA:
If Cells(7, 26) = "" Then
MsgBox "節を入力して下さい"
GoTo CE
Else
規定ファイル名 = "管理図" & "-第" & Range("Z7") & "節" & ".xls"
保存ファイル名 = Application.GetSaveAsFilename(規定ファイル名)
If 保存ファイル名 = False Then
MsgBox "保存は中止されました"
Else
ActiveWorkbook.SaveAs 保存ファイル名
End If
ChDir "A:\"
Workbooks.Open Filename:="A:\data\" + ファイル名
Windows(規定ファイル名).Activate
End If
AC:
Sheets("データテーブル").Select
For i = 4 To 204
If Cells(i, 2) = 0 Then
GoTo AD
End If
Next i
AD:
桁数 = i
LL = 8
AE:
For L = 1 To 20
Windows(ファイル名).Activate
Cells(LL, 3).Select
If Cells(LL, 3) = 0 Then
GoTo CC
Else: GoTo AF
End If
AF:
Selection.Copy
Windows(規定ファイル名).Activate
Cells(i + L - 1, 11).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Windows(ファイル名).Activate ←ここが黄色くなってエラー発生
Cells(LL - 2, 1).Select
Selection.Copy
Windows(規定ファイル名).Activate
Cells(i + L - 1, 3).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Windows(ファイル名).Activate
Cells(3, 2).Select
Selection.Copy
Windows(規定ファイル名).Activate
Cells(i + L - 1, 2).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Windows(ファイル名).Activate
Cells(2, 1).Select
Selection.Copy
Windows(規定ファイル名).Activate
Cells(i + L - 1, 4).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Windows(ファイル名).Activate
Cells(LL, 1).Select
Selection.Copy
Windows(規定ファイル名).Activate
Cells(i + L - 1, 10).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Windows(ファイル名).Activate
Cells(LL, 2).Select
Selection.Copy
Windows(規定ファイル名).Activate
Cells(i + L - 1, 9).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
CD:
LL = L * 59 + 8
Next L
CC:
Windows(規定ファイル名).Activate
CE:
Sheets("グラフ").Select
End Sub
以上、よろしく御願いします。
エラーが起きて、とまったとき、VBAのどこが黄色く光って、とまりますか?
一般論では、『インデックスが適用範囲外』とは10個しか用意していないものを
11個使いに行った場合などに発生します。
(kazu)
すみません、見落としていました、[ここが黄色になる]を発見しました。
ファイル名がエラーになるということは、手で入力したファイル名が間違えている
可能性が一番大きいです。
ファイル名を手で入力させるのは基本的に間違っています。
ファイルが存在するかDir関数などで、調べて、もしファイルが存在しなかったら、
終わらせるようにします。
(kazu)
もし、ファイル名が違っていたら、AE:とAF:の間の ”Windows(ファイル名).Activate”
の所が黄色く点滅するのではないでしょうか?
(だい)
うーーむ、たしかに、上で引っかかるはずですね。
Windows(ファイル名).Activate ←ここが黄色くなってエラー発生
Cells(LL - 2, 1).Select
となると、あと考えられるのは、LLが3より小さい場合が起こりうるのでは?
(kazu)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.