Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : Excel 2007)
別ファイルのシートをコピーして挿入する
投稿日時: 19/01/09 22:50:14
投稿者: japanmap

別ファイルのシートをコピーして挿入するコード(以下参照)を
作りましたがエラーメッセージが出てしまいます。どこがおかしいか
教えて頂けないでしょうか?
 
■コード
 
Sub test()
 
  ActiveWorkbook.Sheets(1)Copy Before:=ThisWorkbook.Sheets(1)
 
End Sub
 
■ エラーメッセージ
 
WorksheetクラスのCopyメソッドが失敗しました
 
※コードを以下の通り、コピー先のブック名まで記載すると正常に
動きますが、ブック名が変わるので、上記のような形にしたいです。
 
Sub test()
 
  ActiveWorkbook.Sheets(1).Copy Before:=Workbooks("Book1.xlsm").Sheets(1)
 
End Sub
 
以上、よろしくお願い申し上げます。
 

回答
投稿日時: 19/01/10 05:51:34
投稿者: miyakodai

「.」が抜けているのでは?
 
Sub test()
   
   ActiveWorkbook.Sheets(1).Copy Before:=ThisWorkbook.Sheets(1)
   
                       '---↑---
End Sub

投稿日時: 19/01/10 07:56:57
投稿者: japanmap

miyakodai様
 
コメントありがとうございます。
「.」が抜けているとのことですが、画面表示がずれているのかどこに追記すればよいか分からないので、改めて教えて頂けないでしょうか?

回答
投稿日時: 19/01/10 08:02:07
投稿者: miyakodai

Sub test()
  
  ActiveWorkbook.Sheets(1)Copy Before:=ThisWorkbook.Sheets(1)
  
End Sub
 

 
Sub test()
  
  ActiveWorkbook.Sheets(1).Copy Before:=ThisWorkbook.Sheets(1)
  
End Sub
 
としてみたら?

回答
投稿日時: 19/01/10 08:56:06
投稿者: WinArrow
投稿者のウェブサイトに移動

ピリオドが抜けている場合のエラーメッセージは、「コンパイルエラー」です。
  
掲示のようなエラーメッセージが出る場合、
 別のところに原因があるように思います。
  
掲示したコードを正確にすること・・・コードペインからコピペ(掲示板に手入力せずに)
及び、前段の隠されたコードを掲示して見てください。
 

回答
投稿日時: 19/01/10 16:58:46
投稿者: WinArrow
投稿者のウェブサイトに移動

もしかして、↓のようなことでしょうか?
 
http://support.microsoft.com/kb/210684/ja

投稿日時: 19/01/10 22:32:24
投稿者: japanmap

miyakodai 様、WinArrow様
 
色々調べたところ、ThisWorkbook を使っていましたが、マクロが
個人ブックに保存されていたのが原因でした。
コメントありがとうございました。