• 締切済み

シート名を変更するとVBAが実行出来ない

どなたか教えてください。 エクセル2003を使用しています。 毎日の売上を商品ごとに計上する表を作成しています。 その中で複数の細分化したマクロを組み合わせて実行できるようにしていました。 しかし、ファイル名を変更するとエラーになり実行出来ませんでした。 今後、ファイル名を「2009年8月分」や「2009年9月分」といったかたちで、月ごとに変更したいと考えています。 この場合、どういったVBAを使用すればいいでしょうか。どなたかお教え下さい。 ちなみに、エラーで表示されるVBAは、「Application.Run」が使用されているようです。

みんなの回答

回答No.2

いや、だから。 >アクティブシートに対してマクロが実行されるように組むとか

回答No.1

マクロ内でシート名を指定しているんじゃ無いですか? マクロの作り方、シートの構成など条件がわかりませんが、アクティブシートに対してマクロが実行されるように組むとか、工夫が必要かと。

sonyno1
質問者

補足

お返事ありがとうございます。 そうなんです。事前に作成したマクロを「マクロの記録」を使用し、ひとつずつ実行していくと、マクロ内にシート名が入ってしまいました。 シート名をいれず、複数のマクロを実行させるマクロを作成したいのですが、何か方法はありませんか。 よろしくお願いします。

関連するQ&A

  • 【Excel】シート名について(マクロ)

    Excel2003を使用しています。 あるマクロで Sheets("2007 年 01 月分").Select の選択するシート名が変更されても、そのシートを選択することはできないでしょうか? 例えば、コードを書いたときのシート名は『2007 年 01 月分』で、上記のようにコードを書いていて、次回、そのマクロを実行するときに、シート名を『2007 年 02 月分』に変更しても、同じ(元の)シートを選択してマクロが実行されるようにしたいのですが、そういうことはできますか? できるかできないかだけでもわかると助かります。 もし、できる場合は、どのようにすればいいのでしょうか?説明が足りないようであれば補足しますので、よろしくお願いします。

  • シートをコピー、シート名を変更

    Windows8でExcel2000を使っています。 こういうマクロはどう書けばいいんでしょうか? 同一ファイル内で、シートを複数枚コピー。 複数選択したセルに入力された文字列を、上記でコピーされたシート名に反映したい。 「原本」というシート名のシートがあり、それを元に一年分の表を作りたいのですが 今は手で11枚コピーを作った後1枚ずつ名前変更でやっています。 シート名にしたい文字列は現在なら「2015年01月」~「2015年12月」です。 セルに「2015年01月」~「2015年12月」を入力、選択した後マクロ実行で シート名変更に反映できればありがたいです。

  • シート名を変更してもVBAでエラーにならないように

    VBA初心者です。 VBAで複数のシートを選択するという動作を行う時、シート名を変更するとエラーになってしまうのですが、どうすれば回避できるのでしょうか?オブジェクト名?が使用できるらしいのですが、エラーになってうまく動作しません。指定の仕方を変える必要があるのでしょうか? 例えば、  Sheets(Array("第1週", "第2週", "第3週", "第4週", "第5週")).Select  Sheets("第1週").Activate と記述してあって、シート名の"第1週"を"9月1日"とかに変更したら、当然エラーになりますが、 左のプロジェクトエクスプローラにある、Sheet1(第1週)の名前の変わらないオブジェクト名"Sheet1"の方で指定したいと思うのですが、単純に名前を置き換えても動作しません。どのように指定すればよいのでしょうか?

  • VBAでエクセルからのファイル名とテキスト化を自動で実行する方法

    マクロを実行して、エクセルのセルからファイル名とテキストファイルを自動で出力したいのですが、VBA初心者なのでプログラムの書き方がわかりません。 どうかVBAのプログラムの書き方を教えて下さい。 【マクロ実行前のエクセル状態】 1.エクセルのA列にファイル名1を入力 2.エクセルのB列にファイル名2を入力 3.エクセルのC列にテキスト出力させたい文字列を入力 【期待のマクロ動作】 ファイル名1+ファイル名2のファイル名でC列の文字列をテキストファイルで出力。 《例》 A B C 1 2 あ ⇒マクロ実行⇒ファイル名『12』テキスト内容『あ』 3 4 い ⇒マクロ実行⇒ファイル名『34』テキスト内容『い』 5 6 う ⇒マクロ実行⇒ファイル名『56』テキスト内容『う』 7 8 え ⇒マクロ実行⇒ファイル名『78』テキスト内容『え』 ・ ・ ・ ・ 上記の様に、一回のマクロ実行で入力されている列のセル全て がファイル名付きのテキストファイルとして出力をさせたいです。 申し訳ありませんが、よろしくお願いいたします。

  • vba book名を変更して保存しても実行出来る?

    こんにちは!   マクロ初心者です。よろしくお願いします。 マクロの記録でマクロを作成し、マスターとして使用しています。 マクロ実行後は、コピーシートを作り別Bookにしてから、 マスターは上書きせずに閉じるようにしています。 Sheets("原価").Select Sheets("原価").Copy After:=Sheets(1) Sheets("原価 (2)").Select Sheets("原価 (2)").Move Sheets("原価 (2)").Select Sheets("原価 (2)").Name = "原価" Windows("原価集計.xls").Close Savechanges:=False 作成したマスターの名前を変更して保存し使用すれば『実行時エラー"9"』になります...  『実行時エラー"9"』  インデックスが有効範囲に有りません。 メッセージが出ますが... ある人から貰ったマクロのマスターは、全く違った名前にして保存しても問題なく実行が可能ですし、マスターと同じように上書きせず保存が出来ます。 (残念ですがマクロは教えて頂けませんでした...(-_-;) マクロに汎用性を持たしたいと思いますので、どのようにすれば可能になるのでしょうか教えてください。 マクロ初心者です。 どうかよろしくお願い致します。

  • エクセルマクロでファイル名やシート名変更できない

    エクセルは初心者なのでマクロを自動記録して作成しています。 少しづつ動作を小分けにして記録して、まとめてボタンで連続実行させるようにしました。 (1)作成途中で失敗したら最初からの作業になると思い、 ある程度進んだら何度かファイルのコピーを作成して進めていました。 ある程度完成した時点でファイル名が「○○○4~コピー~」の様な名前だったので、正式に名前を決めて変更したらマクロの実行が出来なくなりました。(元の名前に戻すと実行可能) (2)またシートも複数のシートに跨って参照するようなマクロです。 シート名を分かりやすい名前に変更したらこの場合もマクロ実行できなくなりました。 (3)コピーしたファイルもマクロ実行できないものがあります。 コピーしたファイルはマクロ実行できないのでしょうか? (4)ファイル作成途中で何かの変更が生じて列や行の挿入を行った場合、 特定のセルを参照して計算するマクロは実行できなくなるのでしょうか? その場合、簡単に修正する方法はありますか? 初心者にも分かるような回答をよろしくお願いいたします。

  • シート名が変更できない 「「○○」は予約語のため、シート名に使用できません。」

    マクロを使っているファイルで 新シート挿入し、シート名を「履歴」としようとしたら 「「履歴」は予約語のため、シート名に使用できません。」 というエラーになります。 これはこのファイルが「マクロを有効にする」にしているからいけないのでしょうか? マクロを有効にしつつ シート名を「履歴」にしたいのですが どうすれば可能ですか?

  • VBA・ファイル名にコーテーションがあるとき

    最近ExcelVBAをはじめたばかりなのですが、 あるexcelファイルのマクロを実行し、 別のexcelファイルをリネームし、 excelファイル中のマクロを実行するようにしてみました。 9割がたうまく動いているんですが、 フォルダ名にコーテーションやハイフンなどの記号があると、 マクロの実行のときに、 実行時エラー '1004' マクロ '【ファイル名】!【マクロ名】が見つかりません。 というエラーが出ます。 記号文字を取り払って実行すると、問題なく動作するのですが、 なんとかこれらの記号を入れたままで、うまく動作させる方法はないでしょうか?

  • VBA アクティブなセルのシート名を取得したい

    エクセル2010使用です。 VBAで、アクティブなセルのあるシート名を取得する方法を教えてください。  マクロ.xls (マクロシートA1) ←今回のマクロを書き込んだファイル  参照.xls (参照シートA1)  入力.xls (入力シートF3) この3つのエクセルファイルを開きます。 ( )内はそれぞれの前面にあるシート名と選択されたセルです。 入力シートのF3にカーソルをおいて下記マクロを実行すると   MsgBox ActiveSheet.Name & ActiveCell.Address 「マクロシート F3」と返されます・・・ ほしい結果は「入力シート F3」なんです。 このような場合にアクティブセルのあるシート名を取得する方法があれば教えてください。 よろしくお願いいたします。

  • VBAのOnTimeが実行されません。

    VBAのOnTimeが実行されません。 簡単なサンプルコードをコピーして実行させてみると、「マクロを実行できません。このブックでマクロが使用できないか、又は、全てのマクロが無効になっている可能性があります。」とメッセージが出ます。 しかし、マクロの設定は、全てのマクロを有効にするにチェックを入れてありますし、他のマクロは実行されます。 VBA初心者(1か月くらい)で、途方にくれています。

専門家に質問してみよう