
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も見ています
-
「それ、メッセージ花火でわざわざ伝えること?」
「それ、メッセージ花火でわざわざ伝えること?」というメッセージを教えて下さい
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
最速怪談選手権
できるだけ短い文章で怖がらせてください。
-
一番好きなみそ汁の具材は?
みんなで大好きなみそ汁の具材について語り合おうよっ!
-
あなたが好きな本屋さんを教えてください
どのくらいの規模間で、どのような本が並んでいるか、どのような雰囲気なのかなどなど...
-
【VBA】ワークブックを開く時にエラーが出る場合と出ない場合の違いは?
Excel(エクセル)
-
ファイルの2重に開いた場合の処理(エクセルVBA)
Access(アクセス)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
エクセルの二重起動をやめたい
Visual Basic(VBA)
-
5
ファイルは既に開かれています(Error55)について
Visual Basic(VBA)
-
6
サーバー上のブックを開けない時(エクセルVBA)
Excel(エクセル)
-
7
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
Access(アクセス)
-
8
workbooks.open 開けないファイルの対処法は?
Visual Basic(VBA)
-
9
エクセルのページ区切り(点線)の位置をマクロで取得 ※印刷範囲クリア
Excel(エクセル)
-
10
【Excel VBA】書き込み先ブックが既に開かれてた場合の処理
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
ExcelVBAで今開いているユーザ...
-
フォルダ内の全ブックのシート...
-
EXCELマクロでxlsとxlsxを開く方法
-
【ExcelVBA】指定の書式で、マ...
-
excelマクロ、任意セルの値で名...
-
VB2010でExcelの行をコピーして...
-
エクセルVBA Workbook変数に変...
-
すでに開いているブックのマク...
-
personal.xlsの削除方法
-
EXCEL2003VBA 「マクロでモジュ...
-
同じ名前で拡張子が違うファイル
-
VBAでEXCELのワークシートを削...
-
VBA、Excelのworkbook.open に...
-
【Excel VBA】ブックを複数開い...
-
複数のデータ系列の線の太さを...
-
VBAを一度起動するとずっと出て...
-
昨日まで動いていたエクセルの...
-
エクセルでツールバーに「縮小...
-
別のパソコンでエクセルのマク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAで今開いているユーザ...
-
フォルダ内の全ブックのシート...
-
エクセルVBA Workbook変数に変...
-
VB2010でExcelの行をコピーして...
-
フォルダ内の全ブックのシート...
-
【Excel VBA】ブックを複数開い...
-
【ExcelVBA】指定の書式で、マ...
-
すでに開いているブックのマク...
-
VBAでEXCELのワークシートを削...
-
VBA セル入力された日付データ...
-
EXCELマクロでxlsとxlsxを開く方法
-
excelマクロ、任意セルの値で名...
-
VBA、Excelのworkbook.open に...
-
[Excel VBA] フォルダ内の複数...
-
Excel マクロでファイル名を変...
-
エクセルVBAでブックを開くと処...
-
コマンドボタンでマクロを起動...
-
マクロで新規BOOKを複数作成(...
-
【VBA】他のExcelを起動し、呼...
-
excelでハイパーリンク 別ブッ...
おすすめ情報
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です。
ペーストに失敗してすいません
ありがとうございます
事情で返信出来ませんが試してみます