質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

60454閲覧

エクセルマクロで修飾子が不正ですとでてきますが、原因がわかりません。

macro-beginner

総合スコア25

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2017/01/25 05:01

イメージ説明

どうも変数xFileが悪いみたいなのですが、調べてもどうしていいかわかりませんでした。
変数を代入せずにそのまま

Workbooks("CAB-Grapf.xls").Worksheets("sheet" & i).Range("A1:AU3100").PasteSpecial Paste:=xlPasteAll

とすると正常に動いてくれます。
どうすればいいのかご教授願いたいです。
よろしくお願い致します。

Sub Graph() Dim op As Worksheet, cPath As String, xFile As String, i As Integer Set op = Workbooks("CAB-Grapf.xls").ActiveSheet xFile = Workbooks("CAB-Grapf.xls").Worksheets("sheet" & i) cPath = op.Range("B1").Value Application.ScreenUpdating = False 'シートを追加 Worksheets.Add After:=Sheets("DATA"), Count:=op.Range("K1").Value 'シート追加ここまで 'WorkBookを開く For i = 1 To op.Range("K1").Value If i > 10 Then MsgBox "Bookがそんなにありません" Exit For End If Workbooks.Open op.Range("C2").Offset(i - 1, 0).Value Range("A1:AU3100").Copy xFile.Range("A1:AU3100").PasteSpecial Paste:=xlPasteAll Next End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

恐らくですが、xFileがString型で宣言されているのが問題かと思われます。

VBA

1Dim op As Worksheet, cPath As String, xFile As String, i As Integer 2Set op = Workbooks("CAB-Grapf.xls").ActiveSheet 3xFile = Workbooks("CAB-Grapf.xls").Worksheets("sheet" & i)

の部分を

VBA

1Dim op As Worksheet, cPath As String, xFile As Worksheet, i As Integer 2Set op = Workbooks("CAB-Grapf.xls").ActiveSheet 3Set xFile = Workbooks("CAB-Grapf.xls").Worksheets("sheet" & i)

にしたら動作しませんか?

以下追記
すいません一つ見落としてました。

VBA

1Set xFile = Workbooks("CAB-Grapf.xls").Worksheets("sheet" & i)

の部分で、iって宣言されてはいるものの数値は入ってませんよね。
それで、インデックスが有効範囲にありません なのでしょう。
的確なところでSetするように修正してみてください。

投稿2017/01/25 05:11

編集2017/01/25 05:52
Batoh33789

総合スコア136

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

macro-beginner

2017/01/25 05:47

直してみたのですが、”インデックスが有効範囲にありません”とでてしまいます。 ちなみに Workbooks("CAB-Grapf.xls").Worksheets("sheet" & i).Range("A1:AU3100").PasteSpecial Paste:=xlPasteAll とすると正常に動きだします。 いよいよわかりません・・
macro-beginner

2017/01/25 06:01

できました!;; そういう事なんですね! 本当に助かりました!ありがとうございます!
guest

0

xFileはString型で宣言されていますね。Stringなので、当然、Range等は使えません。しいて言えば、op.Rangeとかにすればコンパイルは通りますね。

投稿2017/01/25 05:13

motuo

総合スコア3027

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問