ここから本文です

VBAで他のファイルのセルをコピーして貼り付けるマクロを作成しましたが、 どうし...

son********さん

2010/2/1716:11:22

VBAで他のファイルのセルをコピーして貼り付けるマクロを作成しましたが、
どうしても「インデックスが有効範囲にありません。」というエラーが出てしまいます。

すみません。過去にも全く同じ質問をしたのですが、解決出来ませんでした。
私の方でも色々調べてみたのですが、どうにもならず、再度お力を貸していただければ幸いに思います。

VBAで他のファイルのセルをコピーして貼り付けるマクロを作成しましたが、
どうしても「インデックスが有効範囲にありません。」というエラーが出てしまいます。

下記コマンドを実行しているのですが、どこかおかしいところはありますでしょうか?
ファイルパスは何度も確認しているので間違っていないかと思います。

BファイルのβシートのA1の値を
AファイルのαシートのA1に貼り付けたいと考えています。

Sub Macro1()
Dim wb As Workbook
Dim psw As Boolean
Dim myPath As String
myPath = ThisWorkbook.path
For Each wb In Workbooks 'Bファイルが既に開いているか確認
If wb.Name = "Bファイル.xls" Then
psw = True
Exit For
End If
Next wb
If psw = False Then
Workbooks.Open (myPath & "\Bファイル.xls")
End If
Workbooks("Bファイル.xls").Sheets("βシート").Range("A1").Copy
Workbooks("Bファイル.xls").Close False
Workbooks("Aファイル.xls").Sheets("αシート").Range("A1").Select
ActiveSheet.Paste
End Sub

※Aファイル、Bファイルの部分はフルファイルパスです。

デバッグをした結果、Workbooks("Bファイル.xls").Sheets("βシート").Range("A1").Copyの部分でエラーが起きています。しかし、指定したファイルは開かれた状態で「インデックスが有効範囲にありません」と出るので、恐らくファイルパスは
間違っていないかと思います。シート名を変更したりもしたのですが、うまくいきません。

構文自体は間違ってはいないのでしょうか?VBAは初心者なもので、ネットから拾ってきたのですが…。

補足keijitenさん ご回答ありがとうございます。
コマンドを実行しましたところ、Workbooks("Aファイル.xls").Sheets("αシート").Range("A1")
のところで同様のエラーが起きてしまいました。この構文ではpasteは必要ないのでしょうか?

本来ならば自分で調べたいのですが、時間が無く、満足に調べることが出来ないのが現状です。
本当に申し訳ありませんが、もう少しみなさんのお力を貸して頂ければ幸いに思います。

閲覧数:
19,727
回答数:
1

違反報告

ベストアンサーに選ばれた回答

kei********さん

編集あり2010/2/2210:39:21

こんにちは~^^

気になるところを修正してみました。。。


Sub Macro1()
Dim wb As Workbook
Dim psw As Boolean
Dim myPath As String
myPath = ThisWorkbook.Path
psw = False
For Each wb In Workbooks 'Bファイルが既に開いているか確認
If wb.Name = "Bファイル.xls" Then
psw = True
Exit For
End If
Next wb
If psw = False Then
Set wb = Workbooks.Open(myPath & "\Bファイル.xls")
Else
Set wb = Workbooks("Bファイル.xls")
End If
wb.Sheets("βシート").Range("A1").Copy _
Workbooks("Aファイル.xls").Sheets("αシート").Range("A1")
wb.Close False
End Sub

<補足に対して>
やはりファイル名やシート名が正しくないのでしょう。
半角・全角の違い、スペースの違いなど
修正してください。

あと、、、Pasteに関してはCopyメソッドのヘルプを
確認すれば十分に理解できることです。
まぁ、通常のコピー&ペーストはCopyメソッドだけで
処理できますけどね^^;

この質問は投票によってベストアンサーに選ばれました!

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる