[[20180110045047]] 『VBAを他のブックに保存させたくない』(kon) ページの最後に飛ぶ

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

 

『VBAを他のブックに保存させたくない』(kon)

はじめまして。
VBA初心者です。久しぶりにVBAを使うので、おかしな発言があるかもしれませんがよろしくお願いします。

業務で使用するエクセルAにVBAが使用されていて、それは絶対に改造したくありません。

ただ、そのエクセルAは使いにくいので、自分が作ったVBAが入ったエクセルBにデータを移して加工などをしようとしています。

そのため、エクセルBでVBAを編集して保存する際はBだけに保存したいのですが、Aにも保存されているようです。

具体的にAへの保存をさせない方法をおしえていただけませんか?
よろしくお願いします。

使用PCはwin7,win10 エクセルは2010,2007 両方で使用しています。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 >エクセルBでVBAを編集して保存する際はBだけに保存したいのですが、
 >Aにも保存されているようです。

 1.「保存されているようです」って曖昧ですね。

 「保存されています」とハッキリ言って貰わないと先に進めないです。
  そうじゃなかったら、質問自体が成立しませんからねぇ。

 >自分が作ったVBAが入ったエクセルBにデータを移して加工などをしようとしています。 

 2.全貌が不明瞭ですが、
  取りあえず、データを移したら、その直後に「エクセルA」は閉じちゃってください。

  そうすれば、「(意図してないのに)エクセルAに保存しようとしたプロセス」でトラブるはずですから、
  原因となっているステートメントがあぶり出されると思います。

(半平太) 2018/01/10(水) 09:20


う〜ん。何を聞きたいのかよくわかないです。

細かいところからツッコめば
>VBA初心者です。久しぶりにVBAを使うので、
って、自分でコード打ったことがあるのか、ないのかよくわからない・・・

さらに、半平太さんも指摘されてますが
>エクセルBでVBAを編集して保存する際はBだけに保存したいのですが、Aにも保存されているようです。
何がAに保存されてるんでしょう?文章だけ読むと、「ブックB」にあるモジュールのコードを改修したつもりが、「ブックA」のモジュールにあるコードも改修されてしまいます。という質問にも受け取れます。(あり得ないとおもいますけど)

>具体的にAへの保存をさせない方法をおしえていただけませんか?
こちらも重複しますが、何をAに保存したくないのかわからないので答えられません。

なんとなくですが、こういうことでしょうか・・・
「ブックA」のマクロを「ブックB」にコピーして動かしたら、「ブックA」のシートやセル内容が変更されてしまいました。きちんとブックBの内容を変更するように改修する方法を教えてください。
この場合であれば、おそらくコードの内容が、「ブックA」を処理するように明記されているか、逆に対象オブジェクトが省略されてActiveなブックやシートに対する操作になってるコードを、「ブックA」がアクティブのときに実行してるのではないかと推測します。

(もこな2) 2018/01/10(水) 10:45


半平太さん、もこな2さん 早速のお返事ありがとうございます。
文章がおかしくてすみません。

現在、自宅のため問題の作業ができない状態なのですが、自分で作ったブックのVBAコードが別ブックにも追加されるのを防止する方法が知りたいのです。

ブック画面から、開発 →マクロ →マクロの実行画面 を開くと、
マクロの保存先として「開いているすべてのブック」と表示されますが、
ここで別ブックにも保存してしまったのか、自分が作ったブックでない別ブックにもVBAコードが保存されてしまっていて困ったのです。
(多分これで別ブックにもコードが追加されたのだと考えています)

このようなことを防ぐ?方法があれば、教えていただけないでしょうか?

よろしくお願いいたします。

(kon) 2018/01/11(木) 03:50


 >ブック画面から、開発 →マクロ →マクロの実行画面 を開くと、 
 >マクロの保存先として「開いているすべてのブック」と表示されますが、
 >ここで別ブックにも保存してしまったのか、

 その画面で表示されているのは、実行したいマクロ(作成済みのマクロ)の保存先であって、
 新規の保存先ではないです。

 なので、
 「自分が作ったブックでない別ブックにもVBAコードが保存されてしまっていて」
 などと言うことは発生しません。

 マクロを作成する段階で「保存先」にブックAを指定したのなら別ですけど、
 それは単なる指定ミスですよね?(人的ミスであって、エクセル側の問題じゃないです)

 何らかの原因で、そっちに保存されたのなら、今からでもブックAから削除すれば手当は終わりです。
 (元に戻すだけですから、ブックAのマクロを改造したことにならないです。)

 ※紛らわしいので、ブックAと同じマクロ名をブックBで使用しない方がいいと思いますが、
  そうしていますか?

 それでも、同じ問題が起きるなら、あなたの書いたコードがその原因を作っているんですから、
 コードをここに開示して貰うのが一番です。

 ※最初に書きましたけど、仰るような現象が本当に起きているのかさえ怪しいと思っています。

(半平太) 2018/01/11(木) 08:28


半平太さんが丁寧に解説されてますので、マクロの実行画面については、特に追加でコメントすることはないです。

最初の質問文を読むと、少なくともVBEの画面は見ているのでしょうから、落ち着いて「プロジェクトエクスプローラー」(デフォルトで使ってるなら左上に出てると思います)をみて、ご自身が改修したコードがどのモジュールに記述されているのか、そのモジュールがどのプロジェクトに属しているのかを確認してみてください。
(もこな2) 2018/01/11(木) 10:02


お世話になっています。

慌ただしい業務中、自分が作ったエクセルBのマクロを走らせて、ふと気づくと編集したくないエクセルAにマクロがくっついてる?と思ったのですが、見間違いだったのでしょうか?

休憩時間にでもじっくり再確認してみます。

ありがとうございました。
(kon) 2018/01/12(金) 00:09


コメント返信:

[ 一覧(最新更新順) ]


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