Excel VBA 質問スレッド No.753 (未解決)

GetOpenFilename エラー424

投稿者 : くりえ     投稿日時 : 2022/05/25(Wed) 16:28:00     OS : 未指定     EXCEL : 未指定
エラーが出たのですが修正箇所に詰まり質問させていただければと思います。
大変初心者で申し訳ございません。
以下のコードは、ユーザーフォームの選択肢をクリックすると作動する内容で、
マクロ起動元のシート(シート名 マスターシート)を
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

[返信 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

ありがとうございます。
やはり同様のエラーが発生してしまいます・・・

[返信 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"))

[返信 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

当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2022-07-07 12:47:42 )

Page
Top