• ベストアンサー

Excelマクロのファイルを名前を付けて保存について

Excelマクロの初心者です 保存方法についてわからなくて困っています。 雛形となるファイルがあります。 これにデータを貼り付けて、名前を付けて保存をしたいです。 ただ、この保存は、あるマクロに設定した動作の一部となります 個人の教科別点数データが入力してあるファイルAがあります。一人に付き1列で記入されています。 別のファイルBには、個人別成績表ファームを作成してあります。 ファイルAをファイルBにコピーして、個人の名前でファイルを保存する マクロを作成しています。 今、一列分(一人分)のデータをコピーして名前を付けて保存ができました。 次に、ループで、教科別点数データの次の列に移ろうとすると、デバックしました。ファイルBがないとのことです。 名前を付けて保存したから、名前が変わってしまったのでそのためでしょうか。 ファイルを開けたまま操作を進めているからいけないのでしょうか? どうしたら、元となるファイルにデータをコピーして、次々名前を付けて保存をしていけますでしょうか? OJTで勉強していけばいい、と言われ基本的なこともよくわからずに行っているので、はずかしいですが、教えてください。 お願いします。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

Workbooks(ブック名)の構文を使っているためでしょう。 最初はWorkbooks("B.xls")で良かったのですが、名前を変えたので、 Workbooks("~.xls")にしなければなりません。※~は変更後の名前 と言うか、毎回このように取る理由は無いわけで、最初にブックを 開いてオブジェクトを取得した後は、これを使い回せば良いのでは?

その他の回答 (2)

  • pulsa
  • ベストアンサー率57% (34/59)
回答No.3

>元となるファイルにデータをコピーして、次々名前を付けて保存 あれこれ考えたのですが、マクロはどのファイルに乗っているのか、保存したあと、ファイルは開きっぱなしなのか?(普通は作業後閉じる) など色々聞かなければならない事があるので、この点のみについてです 元となるファイルをまずコピーします コピーしたファイルに必要なデータを入力(ファイルAのデータ一人分コピー) 名前を付けて保存 コレをループ 元になるファイルには一切手を加えず、コピーしてから作業するのがポイントです

dengennao
質問者

お礼

ありがとうございました 分りやすく説明するのもなかなか難しく 少ない情報で回答をいただいて、ありがとうございました。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

名前を付けて保存しても、前のファイルは元のまま残ります。 プログラムが中断した時、SaveAsメソッドの所でとまりましたか? その時のエラーコードは何でしたか? 最低、この点が明らかにならないと、何とも言えません。

dengennao
質問者

補足

実行時エラー 9 インデックスが有効範囲にありません が出ました。 アクティブになっているファイルBの名前が、 名前を付けて保存した時に個人名に変わるから、アクティブなファイルBがないって、言うことでしょうか。

関連するQ&A

  • Excelマクロの削除

    Excelにて別のExcelのデータをコピーし、名前を付けて保存するマクロを作成しております。 その際、新しく作成したファイルにマクロが残ってしまいます。そのファイルにマクロを残さない方法はありますか? またそのマクロをツール→マクロ→削除をしても次回、ファイルを開いたときに、マクロの有効無効を聞かれます。 他にマクロを削除する場所があるのでしょうか? よろしくお願いします。

  • エクセルで「名前を付けて保存する」マクロ

    エクセルのマクロに関して教えて下さい。 作成したエクセルの原稿を指定したフォルダに 「名前を付けて保存する」マクロを作成できればと思っています。 同じ名前で上書きなら問題ないのですが その都度違った名前で保存したい時に困っています。 名前の時だけ手動で入力するか 原稿の中に書いてある名前をコピーする方法でも良いです。 よろしくお願いします。

  • エクセルのマクロで保存して終了が出来ない

     あるエクセルファイルにて、VBAで Sub 保存して終了() ActiveWorkbook.Save ActiveWorkbook.close End Sub  というマクロを作成したのですが、1回目は正常に動いたのですが次からは、そのマクロを動かしても画面が一瞬点滅するだけで、上書き保存も終了もしません。  それで、ファイルを別の名前をつけて保存してその、別の名前で保存したファイルで、また上のマクロを動かすと1回目は正常に動くのですが、やはり次に開くと動かなくなります。  因みに他のマクロは正常に動作し、この保存して終了させるマクロだけが変なのです。  マクロの書き方を変えて以下のようにしてもだめでした。 Workbooks("ナントカ.xls").Close savechanges:=True  やはり、何回書き方を変えても保存して終了させることだけが出来ません。普通にマクロを使用せず手動ですることは出来るのですが…。  分かりにくい説明ですみませんが、よろしくお願いします。

  • エクセルマクロでファイルを保存するとき

    エクセル(2000)のマクロで、csvファイルを集計して、そのファイルをエクセル形式で保存しようとしています。 このとき、「カレンダー用データファイル」という名前で保存するように指定していますが、もし、同名のファイルが開いていたりすると エラーが出てしまいます。 マクロの中で、「カレンダー用データファイル」という名前のファイルが、現在開いていないか調べることが出来るのではと、いろいろ探してみたのですが、どうしても判りません。 どなたか 教えていただけませんか? また、同様のことを何度も繰り返すので上書き保存をしたいのですが、いちいち「同名のファイルがありますが上書きしますか?」というアラートを出さなくて住む方法もありましたら教えていただきたいです。

  • マクロ 同じフォーマットのそれぞれのファイルから データをコピーペーストする方法

    お世話になります。 マクロを使って 共通フォーマットの複数のファイルのデータを 別なエクセルファイルに コピーペーストするやり方を教えていただけないでしょうか。 複数のファイルは共通のフォーマットです。しかし保存名と内容は違っています。フォーマット化されていない部分のデータをコピーし、仮にAというファイルの一部分に貼り付けるというものです。 具体的には 名前:●●●   ←この●●●だけをコピーする ファイルA   名前:□□□   ←●●●データを□□□位置にペースト この作業を繰り返すというものです。 個人用マクロブックにマクロを作ってみたのですが作成したときのファイルのデータまで記録されていて マクロが動いても その時のデータが張り付いてしまって困ります。 ●●●のところを「現在開いているエクセル」とか命令すればいいのでしょうかね・・・。 いいやり方を教えて下さい。

  • excelでテストの成績処理をしたいのですが

    私は塾の講師をしているのですが、毎日、生徒に5教科の小テストを行っています。 それで、毎日、5教科のそれぞれの点数と合計点数を打ち込んで、壁に張り出しています。 そのデータは、一つのブックに日付けごとでシートを分けて保存してあります。 今回、その日付別の表のデータから、毎回の成績を生徒別の表に変えて、プリントにして生徒一人一人に配ろうかと考えています。ですが回数と人数がとても多いので、一人一人「コピー→貼り付け」を繰り返していたのでは時間がかかりすぎます。 なので、マクロで自動的にやりたいと考えたまではいいんですが、実際どういうプログラムにすればいいのか皆目検討がつきません。 表の形はすべて、A列に順位、B列に名前、C列からG列までが各教科の点数、H列にSUM関数で合計点数。最後の行に各教科と合計の平均点を関数で出している。という表です。 表はすべて名簿の順にソートしてあります。 これらの表から一人一人の毎回の点数を取り出して、自分の毎回の点数が縦に並んでいる別の表を作成したいのです。 どういうやり方をすればいいのでしょうか?

  • エクセルのマクロ

    以下のマクロを教えて下さい。 よろしくお願いします。 [1] Book1のSheet1のA列のデータを、Book2のSheet1のB列にコピーする(B列の先頭から)。 [2] Book1のSheet2のA列のデータを、Book2のSheet1のB列にコピーする([1]で貼り付けたものの次行から)。 [3] Book1のSheet3のA列のデータを、Book2のSheet1のB列にコピーする([2]で貼り付けたものの次行から)。 *A列はデータがない場合はありません。途中に空行があることもありません。 *[1][2][3]は一括処理で結構です。 *マクロ自体はBook3に作成する予定です。

  • エクセル マクロで可能!?

    エクセルで個人データを管理しています。マクロでできるのかわかりませんが、できるなら挑戦してみようと思い質問しました。 データは、縦に個人別に並べてあります。また1人のデータにつき4行を使って横長にその個人のデータを記入しています。よって左端に名前等の基本データが記入されていています。下のような感じです。 (シート1)  名前A データ ××○○○・・・・・・  名前B データ ×○○×○・・・・・・  名前C データ ○○××○・・・・・・   ・   ・ そこで、ある個人のデータの名前周辺部分を別シートにそのまま同じ形式でコピーをしたいのですが、それをマクロでできないのかなと思い質問しました。下のように全ての人をコピーする必要がないので解らなくなっています。 (シート2)  名前A   名前C  名前G   ・   ・ 考えているのはシート1の各名前の前にコマンドボタンを配置し、それに『指定部分をコピーしてシート2に貼り付け』というマクロを組めばいいのでないかと思っています。しかし、全ての個人をコピーする必要がないため、コピー先の場所をどう指定してやればいいのかがわかりません。コピーをした順番に上から順番に埋まってほしいのです。 以上、どなたかわかる方お願いします。 エクセルを文章で状況説明するのは難しいです…

  • 複数のファイルにまたがるマクロについて

    詳しい方、教えて下さい。 あるファイル(Aとします)に、データが入っています。 そのデータを、複数の別ファイル(B,C,Dとします)に一度にコピーできるマクロというのは作成可能でしょうか。具体的には、ファイルAのワークシートに3銘柄の株価データが入っており、それをそれぞれファイルBCDのシート(同じ形式のファイルで、コピーする場所も同じです)に1回のマクロでコピーしたいのです。つまり、BCDのワークシートそれぞれでマクロを作成するのではなく、一発でAからBCDへのコピーができるマクロが可能か知りたいのです。また、そのマクロを動かす時に、BCDファイルを開いていなくともコピーはできるのでしょうか。少しわかりにくい質問かもしれませんが、宜しくお願い致します。

  • エクセルでマクロ?を使ってファイルを作るんですが

    ロータスで作られてるファイルをエクセルに作り直すことになったんですが これにマクロが組まれてるようで、それをエクセルでも再現して欲しいといわれました。 マクロを起動すると 強制的にB7にカーソルが移動します。そこからデータ入力が開始になりまして B7~L7まで入力が終わると、そこに入力されたデータが消えて B14~L14に入力されます。次にデータを入れるとB15~L15といった感じです。 B列は通し番号で10000から始まり10ずつ増えていきます。 マクロを起動するとB7に次に入れる番号が勝手に入力されます。 おそらくB列の一番下?を参照して+10してるのだと思うのですが。 B7でエンターを押すとC7、入力してエンターを押すとD7に といった感じで強制的に次に入力する場所にカーソルが移動します。 ただ一箇所だけH7の次が 別のシートに飛びまして そこで例えば 補助* といれると その下に補助で始まる品名が(補助シート、補助パネル、補助制御盤など) 候補?としてあらわれて、例えば補助パネルにあわせてエンターを押すと 最初のシートに戻ってI7にそれが入力されているといった感じになってます。 ここは別のシートに品名一覧を最初に作っておいて そこから呼び出してるんだと思いますが。 入力が終わるとコントロールブレイク?というのでマクロが終了してました。 ロータスは初めて使ったのでさっぱりわかりませんので うまく説明できなくて申し訳ないです。 エクセルでこんな感じのマクロを組まないといけないのですが どのようにすればよいのかをわかる方いませんか? あと、今後このようにマクロやら関数やらを使ったファイルを作ってくれ という仕事がやたらと回ってきそうなんですが(というか回ってきてる) 殆ど素人の私が一から学んでいく上で 参考になるサイトや本とかありましたら教えていただけたらと思います。

専門家に質問してみよう