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

よろしくお願いいたします。
下記をやろうとした際、「クリップボードに大きな情報があり.....」なる
メッセージが都度出てしまい、次に進みません。
これを回避する方法を教えて頂きたいのですが。

<やりたいこと>
同じ形式の複数のエクセルBOOKに入っている特定の列の特定の行範囲にあるデータを、
別の集計用エクセルBOOKの単一のシートの中に順々にコピーをしていきたいのです。
集計用BOOKの特定の行には、データBOOKのBOOK名が横にずらっと記載されて
おり、集計用BOOKに組んだVBAでBOOK名を読み取り、そのBOOK名のデータBOOKを
開き、特定セル範囲(A2:A5)の値をコピーし、集計用BOOKのBOOK名が記載されて
いる列に貼り付けしていく。同様に、集計用BOOKの右どなりの列に記載されている
BOOK名を読み取り、そのBOOKを開き...と継続し、集計用BOOKにデータ用BOOK
名が記載されていない列まできたら、Do Whileステートメントを終了する、ということ
をやりたいのです。

<問題点>
実行させると、「修飾子が不正です」なるメッセージが出てしまい
先に進まないのです。

<プログラム>
Sub W()
Dim ファイル名 As String
Dim 列番号 As Long
列番号 = 4
Do While Cells(2, 列番号).Value <> ""
ファイル名 = Cells(2, 列番号).Value
Workbooks.Open "D:\学校\データ\" & ファイル名 & ".xlsx"
Range("A2:A1000").Copy
ThisWorkbook.Activate
ActiveSheet.Paste Cells(5, 列番号)
ファイル名.Activate
Workbook.Application.CutCopyMode = False
ActiveWorkbook.Close
列番号 = 列番号 + 1
Loop
End Sub

<エラー発生部分>
ファイル名.Activate

<補足>
「ファイル名.Activate
Workbook.Application.CutCopyMode = False」
という部分はもともとなかったのですが、データが入っているBOOKを閉じる際
「クリップボードに大きな情報があります。この情報...」なるメッセージが
出てしまったため、回避策として追加修正したものです。

すみませんお手数ですが、よろしくお願いいたします。

A 回答 (1件)

変数[ファイル名]がstring型のため、activateが使用できない状態です。



Workbooks(ファイル名).activate

でactiveにできると思います。

また、別の方法ですが、追加した箇所を削除し(元に戻し)、代わりに、下記の一文を入れてみてください。

Application.DisplayAlerts = False

これで「クリップボードに~」は表示されなくなります。
    • good
    • 0

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