ExcelVBA2010 マクロが動作しない

このQ&Aのポイント
  • Excel2010のVBAについて質問します。ブックAとブックBがあり、ブックAにはVBAのモジュールの記述がります。そのブックAの中にあるシート1にコマンドボタンを作成し、このボタンにモジュールが登録されています。ブックAを起動すると、ブックAの中にあるシート1をブックBにコピーします。ブックBにコピーされたシート1のコマンドボタンに登録されているボタンをクリックすると、ブックAのVBAのモジュールが起動され動作されるはずですが、なぜかブックB内のシート1のコマンドボタンのモジュール先がブックAでは無くブックB内のリンク先に変更されてしまい、VBAが動作しません。
  • パソコンAでは動作し、パソコンBでは上記のエラーになってしまいます。Excel本体の設定等を見比べましたが、一向にわかりません。
  • どうかご教授をお願いいたします。
回答を見る
  • ベストアンサー

ExcelVBA2010 マクロが動作しない

Excel2010のVBAについて質問します。 ブックAとブックBがあり、ブックAにはVBAのモジュールの記述がります。 そのブックAの中にあるシート1にコマンドボタンを作成し、このボタンにモジュールが登録されています。 ブックAを起動すると、ブックAの中にあるシート1をブックBにコピーします。 ブックBにコピーされたシート1のコマンドボタンに登録されているボタンをクリックすると、ブックAのVBAのモジュールが起動され動作されるはずですが、なぜかブックB内のシート1のコマンドボタンのモジュール先がブックAでは無くブックB内のリンク先に変更されてしまい、VBAが動作しません。 パソコンAでは動作し、パソコンBでは上記のエラーになってしまいます。 Excel本体の設定等を見比べましたが、一向にわかりません。 どうかご教授をお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

質問はもう少し正確にお願いしたいものです。#1/#2様が、同じ要求をしています。質問内容からすると、たいして長くないはずですが、なぜ、肝心な所のコードを見せないのですか? いくつか試してみましたが、同フォルダー上では、そのような現象は現れません。 確かに、旧バージョンで、そのような現象の記憶はあるのですが、それは、一般的なコードではないからです。 それに、コードは2つあるのですか? 片方は、シートコピーするコードで、もうひとつは、行の非表示のコードなのでしょうか?一つのコマンドボタンなら、当然、またシートがコピーされるはずです。 >ブックBにコピーされたシート1のコマンドボタンに登録されているボタンをクリックすると、ブックAのVBAのモジュールが起動され動作されるはずですが、 コピーしたコマンドボタンで、元のマクロを動かそうとするのは、考え方自体が標準的ではありません。アドインでない限りは、マクロは、そこにあるブックで動かすというのが、標準的です。そうしないと、いちいち、呼び出すことになるからです。ですから、コピーされた側は、コマンドボタンはコピーしないか、コマンドボタンを削除するようにします。言い換えると、シート Copyはせずに、Cells Copyをします。 >Sub Shiyo_Mihyo() >  Rows("11:80").Hidden = True >End Sub このコードは、今までの話の流れとは合いませんが、もし作動させるなら、ブックA側で実行させた時に、同時にすべきだと思います。

その他の回答 (2)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

ブックBから、ブックAの「標準モジュール」内のマクロを動かしたいのかと思いましたが違いますか? 状況が良く見えないので、コマンドボタン押下時のコードを提示してみて下さい。 それとも、コマンドボタンではなくフォームコントロールのボタンですか?

mcs-tani
質問者

補足

ボタンはフォームコントロールです。 ブックAのシート1の上記ボタンに、以下の標準モジュールの記述を登録してあります。 Sub Shiyo_Mihyo() Rows("11:80").Hidden = True End Sub 最初の質問に記述した通り、ブックAのシート1をブックBにコピーされた後、パソコンAではブックBにコピーされた後でブックBのシート1のボタンをクリックするとブックAの標準モジュールのマクロが起動されるのですが、パソコンBでは、リンク先がパソコンBに何故か変更されてマクロが起動されない現象です。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

コマンドボタン押下でブックAのマクロを動かす箇所のコードはどのようになっているのでしょうか。 Application.Run "ブックA!Macro1" の、様になっていますか?

mcs-tani
質問者

補足

ブックA内にあるモジュールがブックBにコピーされるので、「Run」の記述はありません。 パソコンAでは動作しておりますので、何かPC上かExcel上での設定の問題かと?

関連するQ&A

  • ExcelVBAをどのブックでも使う

    お世話になっています。 今回、いろんなブックで使っているシートを最新のデータに入れ替えるVBAを作りました。 これをどのExcelのファイルを開いたときにも動くようにしたいのです。 (入れ替えたいシートの検索なども入っている) 今は特定のブックの標準モジュールになっていて、ユーザ設定でコマンドボタンにしてありますが、他のブックでそのボタンを実行しても、当然特定のブックを開いて実行してしまいます。 これはどのように保存?したら他のブックでも使えるのでしょうか? 他のブックに標準モジュールを作って、すべてに入れていくしかないのでしょうか? ご存知の方がいらっしゃったら、ご教授ください。

  • エクセルのVBAで新しくブックを開いた上でさらに…

    エクセルのVBAで新しくブックを開いた上でそのブックにVBAを埋め込む事はできますか? 分かりにくいと思うので具体的にかきます。 今、ブック1にコマンドボタンAがあり、このボタンAを押す事により 以下の2つを実現したいです。 (1)あたらしくブック2を開きます。 (2)更にこのブック2のシートにはコマンドボタンBができており (3)このボタンBの機能としてこのボタンBを押すと  ブック2のセルA1に数字1が入ります ブック2が開いた後で自分で、コマンドボタンBのマクロをブック2のモジュール内に書くのは簡単ですが、ブック1のコマンドボタンAを押したときに自動的にブック2のマクロを書き込みたいのです。 今、ボタンAを押すことで(1)と(2)まではできるのですが (3)のやり方がわかりません。 そもそもこういった事はできないのでしょうか? ご存知の人がいたら教えてください。よろしくお願いします。

  • VBAで別のExcelブックのボタンのマクロ登録

    Excelブック1とExcelブック2があります。 Excelブック1はVBAで 1)Excelブック2を開いて 2)Excelブック1のワークシート(Sheet1)と  モジュールシート(Module1)を  Excelブック2にコピーします。 3)ワークシート(Sheet1)にはコントロール(ボタン)が貼り付けてあって  このボタンをクリックするとモジュールシート(Module1)の中の  Excute_Button()というプロシージャ(マクロ)を呼び出すため  Excelブック1のVBAで  wb.Worksheets("Sheet1").Shapes.Range(Array("Button 1")).Select  Selection.OnAction = "Excute_Button"  と記述してボタンのマクロの登録をします。   (wbはExcelブック2を指しています) 4)Excelブック2を保存して閉じる。 という処理をしています。 この後、Excelブック1を閉じて、 Excelブック2を開いてワークシート(Sheet1)のボタンをクリックすると Excelブック1が開いてしまいます。 Excelブック2のボタンのマクロの登録のマクロ名を見てみると Excelブック1のファイル名!Excute_Button となっています。 Excelブック1のVBAで、ここを単にExcute_Buttonだけにするには どのようにすればよいでしょうか。

  • VBAによるブック間のシートの移動またはコピペ

    検索で探すもピッタリ来るものが探せなかったものですみません。 Aブックにシート1とシート2があります。 bブックにシート3があります。 シート2とシート3の名前は同じ"abc"とします。 Aブックのシート1にコマンドボタンを設置し、このボタンをクリックするとシート3をシート2に移動またはコピー&ペーストするようにVBAで実現できますでしょうか? よろしくご教授ください。

  • VBA(エクセル)で自動的にボタンをクリックさせるには

    いつもお世話になっております。 下記のことがしたいのですがどうやって良いのかがわからなくって困っております。 やりたいこと。 AブックとBブックが有るとします。(双方ともエクセルファイル) エクセルのVBAで、Aブックのシート上のコマンドボタンを押すと Bブックのシート上のコマンドボタンをクリックするという動きを VBAでさせたいのですがどうしてもクリックさせることができません。 試したこと。 初めは、AのボタンをクリックするとBのボタンをセレクトして SendKeysでENTERを送ってみたりしたのですがうまくいきませんでした。 何かやり方が有りましたら、お教えいただけませんでしょう。 宜しくお願いいたします。

  • ExcelVBAの質問です

    VBAはまったくの初心者です。仕事上Excelで次のような操作をよくしますが、場合によっては量が多く、VBAで効率化できないかと思っていますが、ネット上いくら捜しても似たような書き込みがないので、ここで質問します。どなたか教えて頂けないでしょうか? Sheet1のA列に入力されている連続番号(例えばA1=01, A2=02, A3=03...)をセルA1から順次にSheet2のセルA1にコピーし、コピーした番号でブックに名前を付けて保存します。コピー先はいつも同じブック内のSheet2のセルA1に固定されています。 質問内容がうまく伝わったのか不安ですが、よろしくお願い致します。

  • EXCEL2003 VBAで動作が速くなるようにマクロ記述したいのです

    EXCEL2003 VBAで動作が速くなるようにマクロ記述したいのですが、どのように行えばいいのでしょうか? Sheet1のA1からA300まで、関数によって計算されたデータが格納されています。 そのA1からA300の値(関数の計算結果のみ)を、コマンドボタンをクリックした時にSheet2のA1からA300にコピーしています。 コマンドボタンをクリックする度に、Sheet1のA1からA300までの値を、Sheet2に列を変えてコピーし、値を蓄積する方法を取っています。 以下のマクロを記述して走らせてみましたが、動作が遅いのが気になります。 コピーして貼り付けている動作が遅くなっているのでしょうか? もう少し早くなる方法はありますでしょうか? よろしくお願いします。 Sub CommandButton1_Click1() Dim I Dim N Worksheets("sheet1").Range("F1").Value = Range("F1").Value + 1 N = Worksheets("sheet1").Range("F1").Value For I = 1 To 300  Application.ScreenUpdating = False   Worksheets("sheet1").Cells(I, 1).Copy   Worksheets("sheet2").Cells(I, N).PasteSpecial Paste:=xlValues  Application.ScreenUpdating = True Next End Sub

  • ブックを開くマクロ

    データ管理というファイルの中にある データー(1)のファイルの中の データ表(1)というエクセルbookのあるマクロを実行すると 同じくデータ管理というファイルの中にある データー(2)のファイルの中の データ表(2)というbookを開き そのbookのsheet1のA1:B5をコピーして データ表(1)エクセルbookのsheet1のA1:B5に貼り付ける・・・ というVBAを組む事は出来ますでしょうか? 分かりにくくてすいません

  • Excel2003 マクロでブックを開かずにコピペ

    Excel2003でC:\にあるブックBを開かずに、 開いているブックAの指定したセルをコピーしたいのですがうまくいきません。 具体的なイメージは 開いているコピー先のブックA:いろは.xls コピー先のシート:Sheet1 コピー元のブックB:らりるれろ.xls コピー元のシート:らりるれろ (ブックBの名前(らりるれろ.xls)とシート名が同じなのはシステム上の仕様です。) ブックBのC6をブックAのC5に、 ブックBのI6をブックAのC6に、 ブックBのK6をブックAのC7に、 ブックBのH6をブックAのC8にコピーしたいと考えています。 宜しくお願いします!

  • プロジェクトロックしてあるシートをコピーしてもマクロを見られないようにしたい

    プロジェクトロックしてあるブックのシート(シートモジュールにマクロあり)を他ブックへコピーした場合 コピー先のブックでそのシートモジュールに書いてあるマクロが見れてしまうのですが、プロジェクトロックを保持して(?)コピー先でもマクロを見られないようにする方法があればご教授願います。 よろしくお願いします。

専門家に質問してみよう