• 締切済み

EXCELのボタンによるマクロの登録名にファイル名が入ってしまう

 EXCEL2003を使用しています。  ネットワーク上の共有フォルダ上にEXCELファイルがあり、マクロを作成しボタンを配置して、クリックすると起動するようにしています。  そのファイルをコピーして場所を変えると、ボタンで参照されている(起動する)マクロが変わってしまいます。  たぶん書き方の問題と思うのですが、いい記述方法はないでしょうか?  具体的には、共有フォルダ上の「\\common\Book1.xls」 に、「CopyData」というマクロがあり、ボタンを配置して登録したとします。  そのままでは正しく起動します。  次に共有フォルダ上で同じBook1.xlsをコピーし、ローカルに移しててファイルを編集し、先のボタンをクリックして作業させようとしたのですが、ボタンでの登録が「\\common\Book1.xls!CopyData」のようになってしまい、うまく動作しません。  起動させたいのは「今開いているBookのマクロ」なのですが... ※シートでセルに参照式を入れると似たようなことが起こります。  参照式が入っているシートをコピーして他で編集し書き戻そうとしても、パスが追加され、うまくいきません。  合せてご存じの方、ご教示頂ければと思います。  以上、よろしく御願い致します。

みんなの回答

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

>症状は出たりでなかったりするので、どのような操作をしたときにパスが追加されるのか、また古いままで残ってしまうのかを追跡したいと考えているのですが、しばらく触っていますがどうも一人では発生しないようで困っています。 ご質問の趣旨がリンクがついている場合にそれを効率的に削除したいということだと思って回答しましたが、実際は「症状は出たりでなかったりする」のではなく、症状が出る方法がわからないということでしょうか? その場合は、おそらくブックをコピーしたのではなく、元のブックの「シート」をコピーしたのではないでしょうか?

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >共有フォルダ上で同じBook1.xlsをコピーし、ローカルに移しててファイルを編集し、先のボタンをクリックして作業させようとしたのですが、 今、私は実際に試していみませんが、それは、フォーム・コントロールツールだと思います。 フォーム・コントロールなら、OnAction をマクロで書き換えればよいと思います。ただし、シートコピーでは、フォーム・コントロールには、シートモジュールに書かなければ、マクロは存在していません。また、ActiveX 側の場合、シートコピーをすれば、そのような現象は出なかったような気がします。

kfuruapril
質問者

補足

 こんにちは。回答ありがとうございました。  書いていただいています後半部分がいまいち力量不足でよくわからないのですが、シートをコピーするようなマクロは使用しておりません。 (Copyというのはたまたまのサンプルで...)  どのような操作をしたら今回のような現象になるのか現在トライしていますが、どうも一人で作業していては出ないのかな? というような状況です。  また発生したら補足させていただきます。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

まず「編集」「リンクの設定」で「リンク元の変更」で自分自身のファイルを指定してうまくいかないか調べてみてください。 他ブックのマクロを参照しているボタンがあるなら、単純にそのボタンを右クリックして、自分自身のファイルのマクロに登録し直せばよいと思います。

kfuruapril
質問者

補足

 こんにちは。回答ありがとうございます。 > まず「編集」「リンクの設定」で「リンク元の変更」で自分自身のファイルを指定してうまくいかないか調べてみてください。  問題なく動作します。元々はその設定でしたが勝手にパスが入ってしまう場合があり困っています。 > 他ブックのマクロを参照しているボタンがあるなら、単純にそのボタンを右クリックして、自分自身のファイルのマクロに登録し直せばよいと思います。  その通りなのですが、頻繁に作業のたびに発生すると手間がかかって仕方がないです。  何とか、パスが勝手に付かないようにしたいのですが... --  元ファイルは複数の人で使用しており、各人が更新するとマクロを走らせるというワークを行っています。  元ファイルはリリースのタイミングがあり、必要に応じてコピーして新しいバージョンを作るという作業をしています。  そのたびに複数シート・複数ボタンのマクロの登録状況をチェックするというのは非現実的作業になってしまっております。  症状は出たりでなかったりするので、どのような操作をしたときにパスが追加されるのか、また古いままで残ってしまうのかを追跡したいと考えているのですが、しばらく触っていますがどうも一人では発生しないようで困っています。  何かお気づきの点がありましたらまたコメントいただけるとありがたいです。

関連するQ&A

  • 各シートから浮遊するボタンでtopシートに戻すには

    EXcel2000を起動し、 1.sheet1に表示→ツールバー→フォームからボタンを5個配置。 2.それぞれマクロを登録しました。 3.これらのボタンをクリックすると表紙.xlsの中にある各シートに飛びます。 4.また各シートにはそれぞれsheet1に戻るというボタンをつけました。(シートが多数あると面倒です)そしてブック名は、AAA.xls としました。 5. そして、AAA.xlsのsheet1のボタンに、 同じフォルダの中のBBB.xls というブックを開くマクロをつくりました。その中には多くのシートがあり、その中にBBB.xlsのsheet1に戻るというボタンをまた作らなければなりません。 6.私がしたいことはどんなにたくさんのシートがあろうと、常時表示されたボタンひとつで、sheet1に戻るというボタンを作りたいのです。そのボタンはAAAとかBBBだけのブックだけに使えるようにしたいです。 7.なんだか説明がへたですがよろしくお願いします。

  • エクセルのマクロで」・・・

    マクロの超初心者です。 1度研修で習った程度です。 a.xlsというブックでマクロを動かし、 既にいくつかシートがあるb.xlsを開いて最後のシートの次に新しいシートを作り、 既にあるc.xlsの1つ目のシートにあるデータをb.xlsの新しく作ったシート に貼り付け、b.xlsとc.xlsのブックは閉じるようにすることはできますか?(b.xls,c.xlsは最初閉じている) どのような感じにa.xlsでマクロを組めばよいのでしょうか? 今起動しているブックではないブックを起動したりできるのかも不明です。

  • エクセルで新たなファイルを開くマクロ

    【質問:1】 ○○○.xlsというファイル上で、 ボタンを押すと、 ×××.xlsというファイルを ”マクロを有効にする”で開いて、 (どちらもマイドキュメントに保存してあります) かつ、 ○○○からの自動リンクを反映させ更新し、 (通常ですとダイヤルログボックスがでますよね) ×××のシート1のA1セルをアクティブにする というマクロはどのように書けばいいでしょうか? 【質問:2】 ×××.xlsにおいて、 ボタンを押すと、 ×××を”保存せずに閉じ”て、 かつ○○○.xls(既に開いてあります)の シート1のA1セルをアクティブにする というマクロはどのようにかけばいいでしょうか?  よろしくご教示のほどお願い致します。

  • ブックの共有をしているexcelファイルの複製

    ブックの共有を設定しているbook1.xlsというexcelファイルがあります。 ブックの共有を行なっているとだんだんデータサイズが肥大化してくるので、その対策として 【1】"book1.xls"のシート単位で全て新しい"book2.xls"にコピーする。 【2】"book1.xls"を別のフォルダへ移動。 【3】"book2.xls"の名前を"book1.xls"に変え、ブックの共有設定を行う。 ということをしています。 これらの作業を自動で行えたらと思うのですが、 タスクスケジューラー?.batファイル?VBA?など、何をどう組み合わせたらよいのかがよくわかりません。 アドバイスよろしくお願いします。

  • エクセルマクロ コピー元と貼り付け先を指定してコピー&ペーストを実行するマクロ

    単刀直入にやりたいことを述べます。 Cドライブと仮定します。3つのBOOKがあります。 それぞれ ----- BOOK1.xls「○○Sheet」・・・(実行するファイル)   A 1 BOOK2.xls「△△Sheet」・・・(コピーするファイル名の指定です) 2 A2:E2・・・(コピーするセル範囲の指定) 3 BOOK3.xls「□□Sheet」・・・(貼り付け先のファイル名の指定です) 4 A5・・・(貼り付け先のセルの指定) ----- BOOK2.xls「△△Sheet」・・・(コピー元ファイル)   ABCDE 1 あいうえお 2 かきくけこ 3 ・・・・・ ----- BOOK3.xls「□□Sheet」・・・(貼り付け先のファイル)   ABCDE 1 ・・・・・ 2 かきくけこ・・・(貼り付け) 3 ・・・・・ ----- >やりたいこと BOOK1.xls「○○Sheet」のA1のセルの値とA2セルの値を参照し、 その該当BOOKのセル範囲(BOOK2.xls「△△Sheet」のA2:E2)をコピーして、 BOOK1.xls「○○Sheet」のA3のセルの値と、A4セルの値を参照し、 その該当BOOKのセル範囲(BOOK3.xls「□□Sheet」のA5)へペーストする。 別のブックの指定したセルの値を別のブックの指定したセルへ貼り付けるだけなんですが、 以前関数を使って似たような事をしようとしたのですが、うまくいかなかったので、マクロならできるのでしょうか。 よろしくお願いします。(ちなみにエクセル2000又は2003です)

  • エクセルマクロ ファイル名を変更したとき

    マクロ初心者です。 データファイルからシートを複写挿入するマクロです。 コピー先ファイル名を都度変更したいのですが、その場合マクロにコピー先ファイル名が入っているのでエラーになります。名前が変わっても実行できるようにするにはどうしたらよいのでしょう? なお、複写元のデータファイルは複写後に閉じます。 Workbooks.Open Filename:="データファイル.xls" Sheets("Sheet1").Copy Before:=Workbooks("コピー先ファイル名.xls").Sheets(1)

  • エクセル マクロについて

    エクセルのマクロについて教えてください。 下記のようなマクロを実行した場合 どのような条件でフォルダ内のファイルを オープンしていくのでしょうか。 ファイルの名前や更新時間などでしょうか? また、名前や更新時間順でファイルを開いていくように するにはどうしたらよろしいでしょうか。 ご回答よろしくお願い致します。 以下マクロ 'オブジェクトを設定する Set ファイルシステム = CreateObject("Scripting.FileSystemObject") '読み込むファイルを1個指定する あるブック = Application.GetOpenFilename("Excelファイル(*.xls),*.xls") '親フォルダーを取得する Set 親フォルダー = ファイルシステム.GetFile(あるブック).ParentFolder '親フォルダー内の全ファイルに以下の操作をする For Each ファイル In 親フォルダー.Files 'ファイルを開く Workbooks.Open ファイル.Path 'ブック名を記憶する ブック名 = ActiveWorkbook.Name '開いたファイルの伝票(NO)のシートを「全データ」シートの後ろにコピーする ActiveWorkbook.Worksheets("伝票(NO)").Copy After:=ThisWorkbook.Worksheets("全データ") '開いたファイルを閉じる Workbooks(ブック名).Close Next                                                 以上

  • マクロを登録したボタンの表示を変更するマクロ

    かなり難易度が高いと思いますが、Excelのマクロでこんなことできませんか? Excelのボタン(表示名:ファイル取り込み)にあるマクロを登録し、このマクロを実行するとファイル選択ウインドウが開き、ここでフルパス指定(仮にc:\aaa\bbb.xls)であるファイルを選択する。 すると、ボタンの表示が”参照ファイル”に変わり、参照ファイルをクリックするとc:\aaa\bbb.xlsが別Windowオープンになる。

  • マクロの記録ができません

     こんにちは、教えてください。マクロを作ろうとしているのですがうまくいきません。ヴァージョンは「2002」です。  「マクロの保存先」で「個人用マクロブック」を選び実行しようとしたら「起動フォルダにある個人用マクロブックは記録のために開かれた状態でなければなりません」>「記録できません」というエラーが出て実行できませんでした。  過去にも似た質問があったので読んでみると、個人用マクロブックは「XLSTART」というフォルダの中に「PERSONAL.XLS」というファイル名で認識されているとのこと。確かに「XLSTART」というフォルダはあるのですが中は空でした。場所は、「ドライブ名:\Program Files\Microsoft Office\Office10\XLSTART」です(ドライブ名:\Documents and Settings\ユーザー名\Application Data\Microsoft\Excel\XLSTARTではありませんでした)。  そこで新しいブックを立ち上げて「PERSONAL.XLS」という名前で「XLSTART」フォルダに保存してみました。すると、新しいブックを立ち上げようとすると、通常は「Book1」という名前のブックができるのに、自動的に「PERSONAL.XLS」が立ち上がるようになってしまいました。  この状態でマクロの記録をしてみたら、一応記録はできますし動きます。  ところが、このマクロを編集しようとVBEを起動しても、Moduleが出て来ません。「VBAProject(PERSONAL.XLS)」と表示されるべき場所には「Sheet1」とあります。  そこで「XLSTART」フォルダの中の「PERSONAL.XLS」を削除してみたところ、以前と同じように新しいブックは「Book1」という名前に戻りました。ただし、マクロの記録はできません。  ちょっと混乱気味ですが、やりたいことは以下の3点です。 1.個人用マクロブックにマクロが記録できるようにしたい。 2.VBEで作ったマクロを編集したい。 3.新しいブックは「Book1」で立ち上がるようにしたい。  どうしたらいいのでしょうか。ご回答いただければ幸いです。

  • Excel マクロボタン

    Book1にあるマクロボタン(80ヶ)をBook2にマクロボタンをコピーし、Book2を別のPCで開くと中身の無いボタンです、中身付でのコピー方法を教えてください。

専門家に質問してみよう