[[20190712163358]] 『424エラー オブジェクトが必要です』(kousin) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『424エラー オブジェクトが必要です』(kousin)

最近VBAの勉強を始めました。 色々なサイトを見ながら少しづつ勉強をしております。
今回は以下の構文で424エラーが出るのですが、原因が分からず頭を抱えています。
ご教授いただければ幸いです。 ○○には個人名が入ります。

Sub test()
Dim sheet As Range
Set sheet = Range("E4") 'E4の文字列を変数として扱う
Debug.Print (sheet)

Workbook.Open Filename:="C:\Desktop\共有ファイル\○○\マクロ開発用\" & sheet & ".xlsx" 'E4の変数を代入してファイルを開く

End Sub

< 使用 Excel:Office365、使用 OS:Windows10 >


何行目でエラーが出るのでしょうか?

Range オブジェクトのデフォルトプロパティ はValue なので

上記のように、省略してもエラーにはならないと思いますが・・・

Dim sheetname As string
sheetname = Range("E4").value 'E4の文字列を変数として扱う
Debug.Print sheetname

などと書くのがベターだと思いますが。

もしかしてほかのコードを省略していませんか?

(渡辺ひかる) 2019/07/12(金) 16:53


424エラーになるのは、「Workbook.Open」だから。 ブックを開きたいならば「Workbooks.Open」です。
(スペルミスのせいで、Workbookが変数扱いされているので、.Openなんてメソッドは持ってないからエラーになっている)

「ツール」−「オプション」で、「変数の宣言を強制する」にチェックしておくと、このようなミスを即教えてくれますよ。(今回の場合、変数が定義されていないエラーになって、実行させてくれなくなる)

他にも、デスクトップのフルパスが違っていそうに見えますが、まぁそこはご自身で確認してください。
(???) 2019/07/12(金) 16:57


そこか・・・<m(__)m>
(渡辺ひかる) 2019/07/12(金) 17:02

早めのご回答ありがとうございます。 無事に動きました。 デスクトップのフルパスは会社名とか入っていたので少し省略していました。申し訳ありません。
???さん 渡辺ひかるさん ありがとうございました。 自分も他の人に教えられるくらいに慣れるように精進致します。
(kousin) 2019/07/12(金) 17:10

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.