Excel VBAに関する質問掲示板です。
Excel VBA 質問スレッド No.753 (未解決)
GetOpenFilename エラー424
投稿者 : くりえ 投稿日時 : 2022/05/25(Wed) 16:28:00 OS : 未指定 EXCEL : 未指定
エラーが出たのですが修正箇所に詰まり質問させていただければと思います。
大変初心者で申し訳ございません。
以下のコードは、ユーザーフォームの選択肢をクリックすると作動する内容で、
マクロ起動元のシート(シート名 マスターシート)を
GetOpenFilenameで選んだエクセルブックの最後尾にコピーしたいという内容です。
下記のコードは Do Loopでファイル内のすべてのエクセルブックにコピーするという内容の
プロシージャを書き換えながら作っているのですが、
現状エラー424「オブジェクトが必要です」と出ます。
正しい対処法をご教授いただけると幸いです。
※文章内のエクセル関数に含まれる「!!!!!」は質問のために書き換えた伏字です。
エラーが出たのですが修正箇所に詰まり質問させていただければと思います。
大変初心者で申し訳ございません。
以下のコードは、ユーザーフォームの選択肢をクリックすると作動する内容で、
マクロ起動元のシート(シート名 マスターシート)を
GetOpenFilenameで選んだエクセルブックの最後尾にコピーしたいという内容です。
下記のコードは Do Loopでファイル内のすべてのエクセルブックにコピーするという内容の
プロシージャを書き換えながら作っているのですが、
現状エラー424「オブジェクトが必要です」と出ます。
正しい対処法をご教授いただけると幸いです。
※文章内のエクセル関数に含まれる「!!!!!」は質問のために書き換えた伏字です。
Private Sub OptionButton1_Click()
Application.ScreenUpdating = False ' 描画を停止する
'起動したエクセルブックの表示しているシートを指定したファイル内の全てのエクセルブックの最後尾にコピペする
Dim SourceSheet As Worksheet
Dim TargetBook As Workbook
Set SourceSheet = Worksheets("マスターシート")
Set TargetBook = Application.GetOpenFilename("Excelブック,*.xlsx")
SourceSheet.Copy after:=TargetBook.Worksheets(TargetBook.Worksheets.Count)
TargetBook.Worksheets(TargetBook.Worksheets.Count).Name = ("!!!!!")
Worksheets("!!!!!").Range("C3").Formula = !!!!!
TargetBook.Close savechanges:=True
Set SourceSheet = Nothing
Set TargetBook = Nothing
Unload UserForm1
Unload UserForm2
Unload UserForm3
End Sub
[返信 1] Re : GetOpenFilename エラー424
投稿者 : さんこう 投稿日時 : 2022/05/25(Wed) 16:49:13
>Set TargetBook = Application.GetOpenFilename("Excelブック,*.xlsx")
参考になれば。
https://www.google.com/search?q=getopenfilename+%E4%BD%BF%E3%81%84%E6%96%B9
>Set TargetBook = Application.GetOpenFilename("Excelブック,*.xlsx")
参考になれば。
https://www.google.com/search?q=getopenfilename+%E4%BD%BF%E3%81%84%E6%96%B9
[返信 2] Re : GetOpenFilename エラー424
投稿者 : くりえ 投稿日時 : 2022/05/25(Wed) 16:53:30
■[返信 1] さんこうさん(2022-05-25 16:49:13)の記事
> >Set TargetBook = Application.GetOpenFilename("Excelブック,*.xlsx")
>
> 参考になれば。
>
> https://www.google.com/search?q=getopenfilename+%E4%BD%BF%E3%81%84%E6%96%B9
>
ありがとうございます。
やはり同様のエラーが発生してしまいます・・・
■[返信 1] さんこうさん(2022-05-25 16:49:13)の記事
> >Set TargetBook = Application.GetOpenFilename("Excelブック,*.xlsx")
>
> 参考になれば。
>
> https://www.google.com/search?q=getopenfilename+%E4%BD%BF%E3%81%84%E6%96%B9
>
ありがとうございます。
やはり同様のエラーが発生してしまいます・・・
[返信 3] Re : GetOpenFilename エラー424
投稿者 : さんこう 投稿日時 : 2022/05/25(Wed) 16:58:56
>やはり同様のエラーが発生してしまいます・・・
どこを修正したのでしょうか?
>やはり同様のエラーが発生してしまいます・・・
どこを修正したのでしょうか?
[返信 4] Re : GetOpenFilename エラー424
投稿者 : さんこう 投稿日時 : 2022/05/25(Wed) 17:56:10
正しくない対処法を提示しておきます。
Set TargetBook = Workbooks.Open(Application.GetOpenFilename("Excelブック,*.xlsx"))
正しくない対処法を提示しておきます。
Set TargetBook = Workbooks.Open(Application.GetOpenFilename("Excelブック,*.xlsx"))
[返信 5] Re : GetOpenFilename エラー424
投稿者 : ピロリ 投稿日時 : 2022/05/25(Wed) 20:38:27
下記の部分を修正して、試してみて下さい。
ファイルを開いている処理が見当たらないので ...
下記の部分を修正して、試してみて下さい。
ファイルを開いている処理が見当たらないので ...
Private Sub OptionButton1_Click()
'《 前 略 》
'Set TargetBook = Application.GetOpenFilename("Excelブック,*.xlsx")
'
'GetOpenFilenameは選択したファイル名(String型)を返すので、上記は NGのはずです。
'下記で試してみてはいかがでしょう。
'
Dim Filename As String
Filename = Application.GetOpenFilename("Excelブック,*.xlsx")
If Filename = "False" Then Exit Sub
Set TargetBook = Workbooks.Open(Filename)
'《 中 略 》
End Sub
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
返信入力フォーム
( 処理日時 : 2022-07-07 12:47:42 )