• ベストアンサー

エクセルのマクロの修正方法

エクセルで簡単なマクロを作って使用しています。 例えば罫線を引いたり、特定の行列を削除するなど本当に簡単なものです。 ところが、ある時期から全てのマクロ(20個くらい)を実行させると必ず、ある特定のファイルが開いてしまうのです。 おそらくなにか間違った操作したためだとおもうのですが、どこで修正すればよいのでしょうか? マクロ編集画面の「VBAProject」というところですか? (あまり詳しくないのでかんたんにお願いします) ウインドウズXPでエクセル2000です。

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

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

こんばんは。#2 のWendy02です。 >そうするとコマンドボタンに取り付ける方法ではこういう問題が今後も出てしまうのですか? 一応、ツールバーに対するコマンドボタンだけになりますが、そういうことになります。マクロで登録する方法もありますが、それは、また、別の機会にでもご質問なさると良いです。少し、ややこしいように思います。 そこで、今回の場合は、「個人用マクロブック」はお分かりになりますか? 一度、ダミーのマクロを作れば、個人用マクロブックの標準モジュールに登録されますから、以下の方法を試してみてください。 ツール-マクロ-新しいマクロの記録 マクロ名(M) .... そのまま マクロの保存先(T)で、クリックすると 「個人用マクロブック」というのが出てきます。 それで、OK を押して、適当にセルをクリックして、マクロの記録の終了をしてください。 Visual Basic Editor (Alt + F11 )をあけますと、 左上の窓の中に、 VBAProject(PERSONAL.XLS) というものがありますから、それをクリックして、Module1 というものをクリックして開けます。 ダミーで作った、Sub Macro1() ~ End Sub は、削除してください。 そこに、前のブックのVisual Basic Editor(VBE) を開けて、その中のマクロを、範囲を選択して、Ctrl + C で、コピーし、PERSONAL.XLS のModule1 に、Ctrl + V で、貼り付けます。 たぶん、今まで動いていたものなら、問題はないと思いますが、その中で、ThisWorkbook というオブジェクト名は、必ず、ActiveWorkbook であることを確認してください。それは、VBEの編集-検索で、カレントプロジェクトを選択して、文字を検索すると、その場所が出てきますので、一度、確認してみてください。 次は、ボタンの登録先の変更です。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2446920 ( http://okwave.jp/kotaeru.php3?q=2446920 ) ここでも、似たようなお話が出ていますが、マクロで変更というのは、どうやら成功しそうにもないようです。たぶん、そのマクロは、この先、何年もお使いになる大事なマクロでしょうから、今回は、面倒ですが、一つずつ、手作業で、マクロの登録先の変更をしてください。 登録先の変更の方法は、 表示-ツールバー-ユーザー設定 コマンド(タブ) で、出ているボタンを選択し、 「選択したボタンの編集(M)」 をクリックして、 「マクロの登録」のダイアログが出たら、 「マクロの保存先(A)」 を「PERSONAL.XLS」に変更して、一つずつ、登録しなおしてみてください。 なお、PERSONAL.XLS は、Ctrl + S で、保存してください。その後で、バックアップを取って、別の場所に、名前を変更しておいておくと良いです。あまり壊れるようなことはありませんが、念のためです。 場所は、 XP の場合は、以下の場所にあります。 C:\Documents and Settings\[ユーザー名]\Application Data\Microsoft\Excel\XLSTART\ ここには、基本的には、PERSONAL.XLS のみが入っていることを確認してください。他のものが入ると、誤動作の原因になります。 なお、ウィルスが入っている場合は、種類によっては、\XLSTART2\ などというフォルダ名になるようです。 また、通常は、ツール-マクロ-セキュリテイの 信頼できる発行元(タブ) 組み込み済みのアドインとテンプレートをすべて信頼する(A) にチェックを入れておきます。マクロのセキュリティを「高」にしておいても、そのマクロは動きます。

TUISOU
質問者

お礼

会社でもなかなかマクロに詳しい人もいなくて困っていましたので 本当に助かります! 個人用マクロブックまでは分かりますのでその後はWendy02さんの回答に 従ってやってみます。 丁寧にありがとうございました。

その他の回答 (3)

noname#192382
noname#192382
回答No.3

こちらはwindows2000エクセル97ですことをまずお断りします。 「ツール」→「マクロ」と進み、そこでいくつかあるマクロのうちどれかを選んで、「編集」を選択するとまくろのプログラムを見ることができ、「編集」の代わりに「実行」を選択するとそのまくろが実行されます。このやり方でチェックしてください。

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

こんにちは。 >ある時期から全てのマクロ(20個くらい)を実行させると必ず、ある特定のファイルが開いてしまうのです。 それは、端的に言うと、マクロの置き場所と、その起動方法の問題です。 ある時期というのは、Excelのツールバーなどにコマンド・ボタンを取り付けたことと、便利だから、別のブックで使いたくなった時ですね。 >例えば罫線を引いたり、特定の行列を削除するなど本当に簡単なものです。 通常は、そのようなマクロは、個人用マクロブック(Personal.xls)の標準モジュールに登録します。そうすれば、少なくとも「開いてしまう」というような問題は発生しなくなります。 私の個人的な意見からすると、そのマクロは、だいたい、10行以内であることと、種類によって、モジュールを分けてあげるのが、良いかと思います。あまり大掛かりな仕掛けのものは、個人用マクロブックには不向きです。私は、あえて、ファイル呼び出しの設定を、参照設定という形にしてやることがあります。 また、20個の同種のマクロは、アドイン化してやれば、必要なときに持ち出し出来ますから、便利にはなるかと思います。

TUISOU
質問者

補足

そうです!確かにツールバーなどにコマンド・ボタンを取り付けたころからでした。そうするとコマンドボタンに取り付ける方法ではこういう問題が今後も出てしまうのですか?また、標準モジュールに登録するにはどうしたらよいのですか?

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

ウイルスチェックはしていますか? ちょっと怪しそうです。

TUISOU
質問者

補足

ある特定のファイルというのは、自分で作成したエクセルファイルなのです。でもウィルスの可能性ありますか?

関連するQ&A

  • Excelのマクロの修正について

    Windous2000で作成したExcelを、WindousXPに移し、マクロを実行すると、実行できないマクロがあります。マクロのセキュリティを下げてもだめでした。 XPで実行できるようにするには、どうすればよいのでしょうか。 どなたか解る方いらっしゃいましたら教えてください。宜しくお願いします。

  • エクセルXPと2000でのマクロ

    初歩的な質問になりますがご存知の方は是非教えて下さいm(__)m EXCELXPでリストから並び替えのマクロを記録させてフォームボタンに登録したのですがそのマクロをEXCEL2000で開いて実行しようとすると「コンパイルエラー/プログラムまたはライブラリィがありません」とでて実行できません。 ボタンでなくメニューバーからマクロを実行すると実行できます。 番号の振り直しのマクロもフォームボタンからは上記同様できません。 でも●●シートへ戻るとか振り仮名を表示するとか非表示にするとかはフォームボタンからでも実行できます。 EXCEL2000で同じ操作のマクロを作ってフォームボタンに新たに登録しなおすとボタンからの実行が出来るようになりました。 VBA画面でみるとエラーの箇所に「DataOption1:=xlSortNormal」とでていて(こちらはEXCELXPで作ったマクロ)EXCEL2000で作ったマクロと比べると「Orientation:=xlTopToBottom」と出ていて違うみたいだなぁと・・・。 でも基本的にVBA画面はあまり分からないので、なんでボタンから操作するとエラーが出たのか分かりません。理由が分からないので修正もできません。(┰_┰) 2000とXPと両方で開くことが多いのでどちらでも実行できるような状態にしておきたいのですがどうしたらいいのでしょう?何故こんなエラーがでてしまうのでしょう?対策はどうしたらいいのでしょう? どうかご存知の方、宜しくお願いしますm(__)m 因みにEXCEL2000のPCのOSは98でEXCELXPのPCのOSはXPです。

  • ACCESSからEXCELのマクロを実行

    ACCESSのデータをEXCELに落として、その後、EXCEL上でマクロを実行させたいのですが、可能でしょうか。 ACCESSのVBAでEXCELを操作することができるのは知っているのですが、EXCELの機能のマクロ(罫線を引いたり、始点―終点間に矢印を引いたり)などをしたいのです。 よろしくお願いします。

  • Excelマクロ実行不可で掃除してみたい

    Excel2000 罫線を除く全て貼り付けをマクロに記録しCtrl][Alt][v]のショートカットキーを使いたかったので、マクロの記述を他の(以前教わった)Auto_Open()のVBAにコピーししました。その日は使えたのですが、後日使えなくなりました。打つ手はありますか?   今度は既存のVBAに引っ越さないでやってみようと、VBAProject(PERSONAL.XLS)の各Moduleを解放し何もない状態で 再び[罫線を除く全て]を貼付けるマクロを記録しました。やはり実行できません。 症状としては  罫線で囲まれたセルを選択してコピーし 貼付け先を選択し ツールバーの[実行三角印]をクリックするとコピー元の点線アクティブが解除されてしまいます。 何かが悪さしている感じです。お掃除は出来ないでしょうか? Excelを削除してインストールし直さないとダメでしょうか?上書き再インストールでは直りませんでした。

  • EXCELでマクロが効かない

    突然毎日使っているエクセルのマクロが動かなくなりました。 「実行時エラー9 インデックスが有効範囲にありません」となります。 自分で作ったものでないのでマクロを見てもどれだかわかりません。 システムの復元を数か所試しましたが、変わりません。 ウインドウズの自動アップデート中に、パソコンが動かないので、私がエクセルを終了させたのが原因のようです。 マクロは10個くらいありますがどれだかわかりません。 修正の方法が有ればお教えください。 (株価をyahooからダウンロードするマクロです)

  • excel マクロについて

    こんにちは excelのマクロを使ってミニゲーム(?)を作ろうと思っていたのですが。 マクロ実行中に画面が止まってしまいます。(マクロはちゃんと動いています) 画面を見ながらやりたいので、マクロ実行より画面を優先することってできませんか

  • エクセルのマクロで

    こんにちは、お願いします。 エクセルに画像の添付でマクロを使用したいのですが、 下記のようなマクロ作成・編集ができるのでしょうか? エクセルの特定のセルに画像のファイル名を入力しマクロを実行すると、他のフォルダにある.jpg画像が指定したセル位置に添付される。 また、添付位置を複数にもできますか? 説明がわかるでしょうか…?^_^; マクロに関して全く無知なのですが、できるものでしたら是非教えてください。 宜しくお願いします。

  • エクセルのマクロの記録について質問です。

    エクセルのマクロの記録について質問です。 2003でマクロの記録の中でオートシェイプのコネクタの線の太さを変えるように記録させました。しかし、2007でやると『実行時エラー 指定された値は境界を超えています。』と表示されます。そして終了かデバックかヘルプのボタンがあります。終了はそのままの画面にもどるのですがデバックを押したらマクロの文字がたくさん書いてある画面がでます。自分そういのはさっぱりなので修正できません。 また、修正できる自信もありません。で、どうしたら2007でその操作がうまく作動することができますか。だれか教えてください。

  • エクセルのセル内の誤変換の修正方法について

    友人のパソコンのエクセルの操作又は修正についてお伺いします。 パソコンはウインドウズXP、オフィス2002か2003です。 (例)   A1セルに数字1を入力、下にオートフィル操作すると全て小文字のaが表示される。この現象は   数字1のみです。数字2以降はコピーされます、曜日などは連続データが表示されるが、いずれも  オートフィルオプションボタンが表示されません。   対処として、ツール→オプション→編集→ドラッグアンドドロップ編集を行うを確認しましたがチェッ   クは入っています。 良き修正方法が有りましたら、ご教示宜しくお願いします。  

  • excelで セルの移動時にマクロ実行を設定したい。

    エクセルでボタンオブジェクトを作りクリックすると実行するようなマクロのを登録方法はわかるのですが、特定のセルB2に数値を入力してEnterKeyを押した際に実行するようにマクロを登録するにはどうするのでしょう。マクロの編集画面で 最初の行が Sub となっていますが、あそこに何かをいれたらいいのでしょうか?教えてください。よろしくお願いします。

専門家に質問してみよう