5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
受講生さんの投稿
(投稿ID: 3569)
2つのブック間でのデータコピペです。
下記述マクロの不具合点を教えて下さい。
最後の行で「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」エラーが発生します。
Sub object_sample()
Dim myBook As Workbook
Dim seeBook As Workbook
Dim mySheet As Worksheet
Dim seeSheet As Worksheet
Set myBook = Workbooks("Book1.xlsm")
Set seeBook = Workbooks("Book2.xlsm")
Set mySheet = Workbooks("Book1.xlsm").Worksheets("Sheet1")
Set seeSheet = Workbooks("Book2.xlsm").Worksheets("Sheet2")
myBook.mySheet.Range("A1").Value = seeBook.seeSheet.Range("B2").valule
End Sub
小川 慶一さんのコメント
(コメントID: 5047)
> オブジェクト変数を使ったマクロについての質問です。
> 2つのブック間でのデータコピペです。
> 下記述マクロの不具合点を教えて下さい。
> 最後の行で「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」エラーが発生します。
mySheetにしろseeSheetにしろ、シートに参照設定(講座で言うところのニックネームの設定)を済ませています。ですから、 mySheet, seeSheet というだけで、どのファイル内の、どのシートか?ということは示せています。
ついては、 myBook.mySheet という書き方はおかしいです。
と書かれてもすぐにはピンとこないかと思いますので...。以下、もう少し補足を。
いただいたマクロの
myBook を Workbooks("Book1.xlsm"),
seeBook を Workbooks("Book2.xlsm"),
mySheet を Workbooks("Book1.xlsm").Worksheets("Sheet1"),
seeSheet を Workbooks("Book2.xlsm").Worksheets("Sheet2")
と書き改めると(*)、以下のようになります。これを見れば、一目瞭然かと。
(*) さらにに書くと、いただいたマクロの最後の最後、「.valule」と書かれています。スペルが違います。「.Value」です。
大文字になっていないことからも、スペリングを間違えていたことが明確ですね。
ひきつづきがんばってください。
受講生さんのコメント
(コメントID: 5048)
理解しやすい回答をありがとうございました。
スペルの間違いはさておきまして…(笑)
そもそも、今回、当方が質問したマクロの
Set myBook = Workbooks("Book1.xlsm")
Set seeBook = Workbooks("Book2.xlsm")
は、不要で、シートの変数宣言、設定のみで良かったということですね。
Sub object_sample()
Dim mySheet As Worksheet
Dim seeSheet As Worksheet
Set mySheet = Workbooks("Book1.xlsm").Worksheets("Sheet1")
Set seeSheet = Workbooks("Book2.xlsm").Worksheets("Sheet2")
mySheet.Range("A1").Value = seeSheet.Range("B2").Value
End Sub
> 受講生 さん:
>
> > オブジェクト変数を使ったマクロについての質問です。
> > 2つのブック間でのデータコピペです。
> > 下記述マクロの不具合点を教えて下さい。
> > 最後の行で「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」エラーが発生します。
>
>
>
> mySheetにしろseeSheetにしろ、シートに参照設定(講座で言うところのニックネームの設定)を済ませています。ですから、 mySheet, seeSheet というだけで、どのファイル内の、どのシートか?ということは示せています。
>
> ついては、 myBook.mySheet という書き方はおかしいです。
>
> と書かれてもすぐにはピンとこないかと思いますので...。以下、もう少し補足を。
>
> いただいたマクロの
> myBook を Workbooks("Book1.xlsm"),
> seeBook を Workbooks("Book2.xlsm"),
> mySheet を Workbooks("Book1.xlsm").Worksheets("Sheet1"),
> seeSheet を Workbooks("Book2.xlsm").Worksheets("Sheet2")
> と書き改めると(*)、以下のようになります。これを見れば、一目瞭然かと。
>
>
>
> (*) さらにに書くと、いただいたマクロの最後の最後、「.valule」と書かれています。スペルが違います。「.Value」です。
> 大文字になっていないことからも、スペリングを間違えていたことが明確ですね。
>
> ひきつづきがんばってください。
小川 慶一さんのコメント
(コメントID: 5049)
さっそくのフィードバック、ありがとうございます。
> > mySheetにしろseeSheetにしろ、シートに参照設定(講座で言うところのニックネームの設定)を済ませています。ですから、 mySheet, seeSheet というだけで、どのファイル内の、どのシートか?ということは示せています。
> そもそも、今回、当方が質問したマクロの
> Set myBook = Workbooks("Book1.xlsm")
> Set seeBook = Workbooks("Book2.xlsm")
> は、不要で、シートの変数宣言、設定のみで良かったということですね。
そういうことですね ^^;