![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
No.11ベストアンサー
- 回答日時:
>ボタンを割り付けたいのは、どのブックなのでしょうか?
>ワークシート.xlsmはあくまで開発中のものでして、このブックで成功したならば本来のペーストしたいbookに登録したいと考えております
そうであれば、試験中は、
ワークシート.xlsmを手で開き、それに登録した、
「別ブックのすべてのセルを取得4」 又は 「別ブックのすべてのセルを取得5」
を直接実行してください。
「別Bookのプログラムを実行」から、上記のマクロを呼び出すのは、間違いのもとになります。
(実際の本番と同じ運用になりません)
>①②③は全て同じbookに存在することになります。
>しかし③のみ別々のブックからの取込みになります
>③は3つのブック、book旧、nyuとgaiはいっしょでbook入外、そして折衝取込はbook折衝取込、からの取込みになります。
了解しました。
上記についてはmFullPath1~FullPath4を適切に設定すれば問題ないです。
④で希望どおりの移し替えが出来ました。
とても嬉しいです
長いことお付き合い下さりありがとうございました
本当に感謝しております
No.10
- 回答日時:
シートまるごとコピーする方法です。
既存のシートを一旦削除してからシートをコピーします。
コピーされたシートのシート名を本来のシート名に変えます。
別ブックのすべてのセルを取得5 で登録しています。
シートの属性も含めてコピーしたいならこちらが良いかと思います。
https://ideone.com/Qlvj7M
No.9
- 回答日時:
恒久対策版です。
FullPath1 = "D:\goo\excel\goo446\配信スケジュール.xlsm"
FullPath2 = "D:\goo\excel\goo446\未納本文.xlsm"
FullPath3 = "D:\goo\excel\goo446\未納本文.xlsm"
FullPath4 = "D:\goo\excel\goo446\未納本文.xlsm"
は、削除してください。
ワークシート.xlsmに登録してください。
別ブックのすべてのセルを取得4 にしました。
https://ideone.com/WFm2ym
No.8
- 回答日時:
前提がよくわかりませんが、
①ボタンを割り当てたいブック
②マクロを登録したいブック
③kyu,nyu,gai,折衝取込 を日々取り込みたいブック
は、同じブックではないのでしょうか。
異なる場合は、①②③ごとにそのブック名を提示していただけませんでしょうか。
又、③には、kyu,nyu,gai,折衝取込の4シート以外にも、他のシートがあるのでしょうか。
No.7
- 回答日時:
>しかしながら申しにくいのですが、openが二重エラーは逃れられないと推測してますがいかがでしょうか
そんなことはないです。
マクロ(別ブックのすべてのセルを取得3)を
ワークシート.xlsmに登録したいなら、
ワークシート.xlsmをオープンしなければよいのです。
暫定対策ですが
Set mb = Workbooks.Open(filename)
を
Set mb = ThisWorkbook
に変えれば、動作すると思います。
恒久対策としては、mbの箇所については、Thisworkbookで置き換えになります。call copy_sheet時のパラメータにmbがありますがこれも削除します。
具体的にコードを希望される場合は、その旨返信ください。
只、気になるのは、何故、ワークシート.xlsmに登録するのかということです。
ワークシート.xlsmに登録するのが大前提なら、
最初にワークシート.xlsmを手でひらいて、ボタンにそのマクロを割り当てれば良いかと思います。
ボタンを割り付けたいのは、どのブックなのでしょうか?
先方は、ワークシート.xlsmを手で開いて、ボタンを押すのがいやなのでしょうか。
No.6
- 回答日時:
>先方は、ボタン1つで今まで手作業だったシートの中身のコピペを希望しており、日付で新しく更新した別のシートにある同名のシートを今触っている従来のものの隣にコピーして、削除するということすら手間だといわれました。
>それて同一上でのシートでのコピペを試行錯誤しております
これは、既存のシートを削除するのを手で行うのが手間だということですね。
以下の処理を行うマクロを作れば良いと思いますが、いかがでしょうか。
①日付で新しく更新した別のシートにある同名のシートを今触っている従来のものの隣にコピー
②既存のシートを削除
③①でコピーしたシートを既存のシート名に合わせてリネーム
もしくは
①既存のシートを削除(全て削除はできないので何か他のシートを1つ残すこと)
②日付で新しく更新した別のシートにある同名のシートをコピー
③そのコピーしたシートをリネーム
のどちらかになります。
要はボタン1つで上記のことができればよいので、
sub 新規マクロ()
call ①
call ②
call ③
end sub
又は
sub 新規マクロ()
①の処理
②の処理
③の処理
end sub
のようにして、ボタンを新規マクロに割り当てれば良いです。
No.5
- 回答日時:
No4です。
No4のブックXに別ブックのすべてのセルを取得3し、それを直接呼び出せば、問題は行ないはずですが、
は
ブックXに「別ブックのすべてのセルを取得3」を格納し、それを直接呼び出せば、問題は起こらないはずですが、
の誤りです。訂正します。
No.4
- 回答日時:
これは、
https://oshiete.goo.ne.jp/qa/13744688.html
の続きですね。
https://ideone.com/2V3qZsの内容をみると
ワークシート.xlsmに格納されたマクロである「別ブックのすべてのセルを取得3」
を呼び出しています。
別ブックのすべてのセルを取得3は、下記URLの内容ですね。
https://ideone.com/ikKSnB
そのマクロのなかで、
filename = ThisWorkbook.path & "\" & "ワークシート.xlsm"
mb=workbooks.open(filename)
を行っています。
これは、自分自身をオープンするということになります。
そもそもの話になりますが、
別ブックのすべてのセルを取得3のマクロは、ワークシート.xlsmに格納して実行されることを
想定していません。
Sub 別Bookのプログラムを実行()を格納しているブック内に格納すべきものです。(仮にブックXとします)
ブックXに別ブックのすべてのセルを取得3し、それを直接呼び出せば、問題は行ないはずですが、
なぜ、そのようにされなかったのでしょうか。
何か事情があって、ワークシート.xlsmに格納されたということでしたら、その事情を
教えていただけると参考になります。
どうしても、ワークシート.xlsmに格納したいということであれば、
その前提で「別ブックのすべてのセルを取得3」を作り直す必要があります。
その場合は、その旨返信ください。
No.3
- 回答日時:
>データを別ブックに転記するマクロをこちらでご教示頂いたのにも関わらず、上記のエラーになってしまいました。
申し訳ありません
そのマクロを入手したURLを提示していただけると、何か解決策が判るかもしれません。提示していただけないでしょうか。
通常は、あなたがマクロを実行するときに、どのブックがマクロによりオープンされるかは、あなたが判っていると思います。マクロ実行時には、そのブックがクローズしていることを確認後、行うべきと思いますが、いかがでしょうか。
特殊な仕様で作成したマクロでなければ、通常、マクロでブックをオープンする場合、そのブックはクローズされていることを前提としています。
No.2
- 回答日時:
2つの回避方法
① アラート非表示
Dim BookPath As String, wb As Workbook
Application.DisplayAlerts = False
Set wb = Workbooks.Open(BookPath)
Application.DisplayAlerts = True
② 事前チェック
Dim BookPath As String
Dim BookName As String
Dim flg As Boolean
BookPath = "C:\Users\hoge\huga.xlsx"
BookName = Mid(BookPath, InStrRev(BookPath, "\") + 1)
For Each wb In Workbooks
If wb.Name = BookName Then
flg = True
Exit For
End If
Next wb
If Not flg Then Workbooks.Open (BookPath)
参考
①https://vbabeginner.net/how-to-open-workbook/
②https://vba-hack.com/checkopenbook/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Excel(エクセル) エクセルの「パスの定義」の仕方について教えてください 2 2024/01/23 10:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
- PostgreSQL ポストグレにあるExcelファイルを開くには 1 2022/12/13 18:07
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Excel(エクセル) マクロについて質問です。 現在、職場のPCで労務管理ソフトを使用していますがそれを紙で出力しなければ 1 2023/11/24 17:48
- その他(ブラウザ) Excel VBA seleniumのedge操作について 業務上、分からないことがございまして、先 1 2022/06/20 16:59
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
もし10億円当たったら何に使いますか?
みなさんの10億円プランが知りたいです!
-
洋服何着持ってますか?
洋服を減らそうと思っているのですが、何着くらいが相場なのかわかりません。
-
思い出すきっかけは 音楽?におい?景色?
記憶をふと思い出すきっかけは 音楽、におい、景色 どれですか?
-
【VBA】ワークブックを開く時にエラーが出る場合と出ない場合の違いは?
Excel(エクセル)
-
ファイルの2重に開いた場合の処理(エクセルVBA)
Access(アクセス)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
サーバー上のブックを開けない時(エクセルVBA)
Excel(エクセル)
-
5
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
6
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
Access(アクセス)
-
7
VBAで二重起動を防止したいのですが、
その他(Microsoft Office)
-
8
workbooks.open 開けないファイルの対処法は?
Visual Basic(VBA)
-
9
【Excel VBA】書き込み先ブックが既に開かれてた場合の処理
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
ExcelVBAで今開いているユーザ...
-
【Excel VBA】ブックを複数開い...
-
【ExcelVBA】指定の書式で、マ...
-
VB2010でExcelの行をコピーして...
-
フォルダ内の全ブックのシート...
-
エクセルVBA Workbook変数に変...
-
すでに開いているブックのマク...
-
エクセルVBAでブックを開くと処...
-
コマンドボタンでマクロを起動...
-
Excel マクロでファイル名を変...
-
フォルダ内の全てのBookに同じ...
-
EXCEL VBA起動時の処理
-
CreateObjectでファイルを開く
-
他のBookのユーザー定義関数を使う
-
VBA セル入力された日付データ...
-
同じ名前で拡張子が違うファイル
-
Excelの保存先と名前を指定した...
-
EXCEL VBAアドイン:シートの右...
-
EXCELマクロでxlsとxlsxを開く方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAで今開いているユーザ...
-
フォルダ内の全ブックのシート...
-
エクセルVBA Workbook変数に変...
-
VB2010でExcelの行をコピーして...
-
【Excel VBA】ブックを複数開い...
-
【ExcelVBA】指定の書式で、マ...
-
すでに開いているブックのマク...
-
VBA セル入力された日付データ...
-
フォルダ内の全ブックのシート...
-
EXCELマクロでxlsとxlsxを開く方法
-
VBA、Excelのworkbook.open に...
-
フォルダ内の全てのBookに同じ...
-
[Excel VBA] フォルダ内の複数...
-
excelマクロ、任意セルの値で名...
-
他のBookのユーザー定義関数を使う
-
エクセルVBAでブックを開くと処...
-
VBAでEXCELのワークシートを削...
-
personal.xlsの削除方法
-
excelでハイパーリンク 別ブッ...
-
EXCEL VBA起動時の処理
おすすめ情報
call文中にworkbook.openを付け加える形にしていた場合、callがあった分だけopenに対して条件文を加えないといけないのでしょうか。
エラーメッセージはその都度出てきてしまいます
データを別ブックに転記するマクロをこちらでご教示頂いたのにも関わらず、上記のエラーになってしまいました。
申し訳ありません
ありがとうございます。今日の夜遅くに組んでいただいたそのままを使ったのですが、エラーになってしまいました。
それが、mb=workbooks.open(filename)のところでした。
そこをコメントアウトすると、callでmbを使ったことによるエラーまで難なく進みました。
御示しの通り、クローズが大前提だと身に染みて感じております。ありがとうございます。
現在、
別Bookに「別Bookにあるマクロを実行」マクロを作成しました。
https://ideone.com/2V3qZs
家では再現できたので、あとは職場で再現できるかどうかです。
返信ありがとうございます
先方は、ボタン1つで今まで手作業だったシートの中身のコピペを希望しており、日付で新しく更新した別のシートにある同名のシートを今触っている従来のものの隣にコピーして、削除するということすら手間だといわれました。
それて同一上でのシートでのコピペを試行錯誤しております
追伸 昨日の別シートでコピペマクロを実行させるマクロは、処理落ちか
1004 マクロを実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。
新たな問題が出てきました
それは良い考え方だと思います。
今までとは違う方向ですが、今までのコードを参考にしてみたいと思います
しかしながら申しにくいのですが、openが二重エラーは逃れられないと推測してますがいかがでしょうか
恒久対策としては、mbの箇所については、Thisworkbookで置き換えになります。call copy_sheet時のパラメータにmbがありますがこれも削除します。
具体的にコードを希望される場合は、その旨返信ください。
ぜひよろしくお願い申し上げます
ボタンを割り付けたいのは、どのブックなのでしょうか?
ワークシート.xlsmはあくまで開発中のものでして、このブックで成功したならば本来のペーストしたいbookに登録したいと考えております
①ボタンを割り当てたいブック
②マクロを登録したいブック
③ky 前提がよくわかりませんが、
①ボタンを割り当てたいブック
②マクロを登録したいブック
③kyu,nyu,gai,折衝取込 を日々取り込みたいブック
は、同じブックではないのでしょうか。
①②③は全て同じbookに存在することになります。
しかし③のみ別々のブックからの取込みになります
③は3つのブック、book旧、nyuとgaiはいっしょでbook入外、そして折衝取込はbook折衝取込、からの取込みになります。
異なる場合は、①②③ごとにそのブック名を提示していただけませんでしょうか。
又、③には、kyu,nyu,gai,折衝取込の4シート以外にも、他のシートがあるのでしょうか。
③には、kyu,nyu,gai,折衝取込の4シート以外にも、他のシートがあるのでしょうか。
ございます。その中のうちにある4sheetです。
ペーストに失敗してすいません
ありがとうございます
事情で返信出来ませんが試してみます