アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記のようなVBAを書きました。しかしインデックスが有効範囲にないとメッセージがでるのですが、どこがまちがっているでしょうか??


Sub macro1()
Dim i As Long
Dim r As Long
Worksheets("フェアリスト").Select
Worksheets("csv").Range("A:C").ClearContents

For i = 2 To 50 Step 5
If Worksheets("フェアリスト").Cells(11, i + 1) <> "" Then
r = Worksheets("フェアリスト").Cells(65536, i + 1).End(xlUp).Row
Worksheets("フェアリスト").Range(Cells(11, i), Cells(r, i + 3)).Copy _
Destination:=Worksheets("csv").Range("B65536").End(xlUp).Offset(1)
Worksheets("csv").Range("A65536").End(xlUp).Offset(1).Resize(r - 3, 1).Value = Worksheets("フェアリスト").Cells(8, i).Value
End If
Next i
Worksheets("csv").Range("A1:C1").Delete shift:=xlShiftUp
End Sub

「インデックスが有効範囲に出ないと出る」の質問画像

A 回答 (2件)

エラーが出たときに「デバッグ」のボタンをクリックして,具体的に「どの行」に色が付いてエラーになっていたのかを情報提供するようにしてください。



考えられることとしては…
1)Worksheets("フェアリスト").Selectが黄色くなっていたら
・単純にシート名を誤記しているので直します
または
・マクロを開始したときに,フェアリストシートを含んだブックとは違うブックがアクティブになっています
 フェアリストシートを含むブックを表に出してからマクロを実行するか,またはマクロの中にフェアリストシートを含むブックをselectする命令を追記します


2)Worksheets("csv").Range("A:C").ClearContentsが黄色くなっていたら
・単純にシート名を誤記しているので直します
または
・csvシートが,フェアリストシートを含むブックとは「別のブックとして開かれています」
 csvシートをフェアリストシートを含むブックのシートにしてからマクロを実行するか,またはマクロの中でcsvシートをフェアリストシートのブックに移動します
 または,マクロをcsvシートが別ブックにあるという状況に合わせて修正します






#余談:今回のご質問とは関係ない範囲でおかしい箇所

間違い?
Worksheets("csv").Range("A:C").ClearContents
訂正:
Worksheets("csv").Range("A:E").ClearContents

間違い:
Worksheets("フェアリスト").Range(Cells(11, i), Cells(r, i + 3)).Copy _
訂正:
Range(Cells(11, i), Cells(r, i + 3)).Copy _
または
Worksheets("フェアリスト").Range(Worksheets("フェアリスト").Cells(11, i), Worksheets("フェアリスト").Cells(r, i + 3)).Copy _

間違い:
Worksheets("csv").Range("A65536").End(xlUp).Offset(1).Resize(r - 3, 1).Value = Worksheets("フェアリスト").Cells(8, i).Value
訂正:
Worksheets("csv").Range("A65536").End(xlUp).Offset(1).Resize(r - 10, 1).Value = Worksheets("フェアリスト").Cells(8, i).Value

間違い?
Worksheets("csv").Range("A1:C1").Delete shift:=xlShiftUp
訂正:
Worksheets("csv").Range("1:1").Delete shift:=xlShiftUp

この回答への補足

ありがとうございます。
一つ疑問なんですが、Resizeがどうして-10なんでしょうか?
行数が10までありますが、たとえば100行まであった場合は-100になるのでしょうか?
どうしてマイナスするのでしょうか?

補足日時:2012/02/25 01:28
    • good
    • 0

はて。



元のご相談:
>しかしインデックスが有効範囲にないとメッセージがでるのですが、どこがまちがっているでしょうか??

は,どこへ行ってしまったのですか?




余談は,あくまでも今回のご質問とは関係無い内容です。
まず今回のご相談内容をクリアして,このご相談を解決で閉じてください。

その次のステップとして指摘した箇所までマクロが到達したら,改めて追加の疑問の箇所の数字を余談でお話しした数字やアナタの思いついた数字に思うとおりに色々変えて,「この数字では意図した結果にならない」や「こうすれば意図通りになる結果」になることを実際にアナタの目で確認し,どうしてそうなるのか考えてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!