Excelマクロでシートを追加して名前を変更する方法とは?

このQ&Aのポイント
  • Excelのマクロを使ってシートを追加し、名前を変更する方法について教えてください。
  • Excelを長く使用するとシート名の数字が増えてしまい、マクロが正常に動作しないことがあります。sheet1で追加する方法や、複数のシートで動作するマクロのコードはあるのでしょうか?
  • 初心者のため質問が下手かもしれませんが、Excelのマクロでシートを追加して名前を変更する方法について教えてください。
回答を見る
  • ベストアンサー

excel、マクロについて教えてください。

excel、マクロについて教えてください。 excelのマクロでシートを追加してシート名を変更し棚卸しに変更する内容を記録したのですが、 excelをずっと使用していてシートを追加していくとsheet1、sheet2と語尾の数字が増えていってしまい、マクロが正常に動作しません。 excelのシートを追加した際に必ずsheet1で追加する方法、若しくはマクロを記録した時はsheet1の名前を変更だったがsheet2でもsheet3でも動作するようなコードは存在しますか? 最近マクロをやり始めた初心者なので、質問が下手かもしれませんがどなたかお分かりになりましたら 教えていただけませんか?よろしくお願いします。

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

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>excelのシートを追加した際に必ずsheet1で追加する方法、 同名のシートの存在は許可されない(エラーになる)ので、シート名の付け方に関して何らかの存在規則に従ってシート名を付ける必要があります。 Sheets.Add After:=Sheets(Sheets.Count) ActiveSheet.Name = "NewSheet" などとして、シート追加後にシート名を設定する事もできます。 >最近マクロをやり始めた初心者なので >sheet2でもsheet3でも動作するようなコードは存在しますか? 一般的な回答になってしまいますが・・・。 記録マクロでは解決できない問題ですから、プログラミングに関しての知識を身につけないと、現場の問題を回避することはできません。

tsuchiyt
質問者

お礼

素早い御回答ありがとうございました。 今回、教えて頂いたコードを使用させて頂き無事解決しました。 また指摘されたプログラミングの知識は皆無なので、これを気に色々勉強していこうと思います。 重ねて御礼を申し上げます。ありがとうございました。

その他の回答 (2)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.3

SHEET1を処理するのではなくシート1番目を処理する、と考えたロジックにするとシート名の影響は少なくなります。 SHEETS(2).SELECTはシート2番目を選ぶ意。

tsuchiyt
質問者

お礼

素早い御回答ありがとうございます。 教えて頂いたコードをどこにいれて良いのかわからなかったので、 今回は使用を断念しました。 もう少しマクロ(プログラミング)に詳しくなったら使用させて頂きます。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>excelのシートを追加した際に必ずsheet1で追加する方法、 Worksheets.Add.Name = "Sheet1" 既にSheet1が有るとエラーになりますので >sheet1の名前を変更だったがsheet2でもsheet3でも動作するようなコードは存在しますか? 追加したシートを変数(NewWS)格納して操作する Dim NewWS As Worksheet Set NewWS = Worksheets.Add NewWS.Range("A1").Value = "テスト" またはシート名に関係なくアクティブなシートを操作 Activesheet.Range("A1").Value = "テスト"

tsuchiyt
質問者

お礼

素早い御回答ありがとうございました。 回答頂いたコードに見慣れないコードがあった為、 今回は使用を控えさせて頂きました。 もう少し自身のスキルがアップした時に使用したいと思います。

関連するQ&A

  • エクセル2007でのマクロの記録

    マクロ初心者です。しょうもない質問で申し訳ありません。 エクセル2007で並び替えをマクロに記録させても並び替えが実行できません(エクセル2003は可能でした)。 例えば・・・マクロの記録を実行→B4セルから下に10~1の数字を入力→その後並び替えボタンをクリックし、昇順で1~10に並び替える→マクロの記録を停止。確認のため、シート2でマクロを実行。数字は入力されるが、並び替えがおこなわれません(T_T) エクセル2007では並び替えのマクロは記録できないのでしょうか??それとも不具合ですか?もし簡単に出来る方法等があるなら教えて頂ければ幸いです。 お手数をおかけしますが、どなたかご回答を頂けると幸いです。

  • エクセルマクロ 教えてください

    エクセルの自動記録でマクロを取り組み始めたばかりの初心者です。 本部から毎月送られてくるエクセルファイルにこちらで別のワークブックに記録したマクロを使って加工しようとしていますが方法がわかりません。 他の人がこのファイルを間単に加工出来るようマクロを使って (マクロのコードの書き換え等の作業をしないで)行えるようにしようとしています。 ※送られれくるエクセルファイルは月毎にファイル名が違います(シート名は変わりません)。 下記は自動記録の内容ですがこれを適用させる方法であります。 宜しくお願いいたします。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/9/8 ユーザー名 : ******* ' ' ActiveWindow.TabRatio = 0.819 Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")).Select Sheets("Sheet1").Activate With ActiveWindow .DisplayHeadings = False .DisplayHorizontalScrollBar = False .DisplayVerticalScrollBar = False End With Sheets(Array("Sheet6", "Sheet7", "Sheet1", "Sheet2")).Select Sheets("Sheet1").Activate ActiveWindow.Zoom = 120 End Sub

  • EXCEL マクロの記録で並べ替えのマクロをつくるとそのシートでしか使えないのでしょうか?

    EXCEL マクロの記録で並べ替えのマクロをつくるとそのシートでしか使えないのでしょうか? EXCEL2007を使っています。 マクロの記録で並べ替えのマクロをつくるとそのシートでしか使えないのでしょうか? シート1 1 3 2 というデータを「マクロの記録」で昇順に並べ替えるマクロを作成します。 シート2 3 5 4 というデータに適用したいのですが、マクロを実行するとシート1のデータが 並べ替えられてしまいます。 マクロを読むと「シート1」という記述があるのでシート1にしか適用できないようです。 マクロの記録だけで別のシートにも適用できるマクロを作成できないでしょうか? (ただの並べ替えだけだったらマクロを作成する必要はないのですが、実際にはもっと複雑な 動作をさせたいのです)

  • エクセルマクロ シートの追加

    マクロでシートを追加し、シートの名前を変更したくて記録したところ、以下のコードになりました。 しかしながら、2度目に実行すると、sheet2が追加されsheet1が無いためエラーとなります。 2度目に実行してもsheet2のシート名を変更できるようにするには、どうすればよいですか? Sheets.Add Sheets("Sheet1").Select Sheets("Sheet1").Name = "処理結果"

  • Excelマクロで置換

    Excelマクロで置換 セルA1に6桁・スペース・24桁の数字が入っています。 最初の6桁に130,397,430,440が含まれているシートを選択 そのシートの中に "ああああ"があったら"ああああい"に "いいいい"があったら"いいいいう"に "うううう"があったら"ううううえ"に と置換をするマクロを書きたいと思っています。 置換する対象の文字列は多いので別マクロで作成し呼び出したいと考えています。 シートは1ブックに30シート程。何シートあるかはブックによって変わります。 現在マクロの記録を使って試行錯誤しているのですが なにぶん初心者なのでなかなかうまくいきません。 どなたかご教授頂ければと思います。

  • Excelマクロの配布

    失礼いたします。 ExcelVBA初心者で、環境はExcel 2003です。 現在使用しているスケジュール表ワークシート(マクロあり)に、新マクロを追加したいと考えております。 新マクロの内容は、スケジュール表ワークシートのChangeイベントによって実行されるものです。 自分のスケジュール表の場合、ワークシートのコードにChangeイベントを追加・新マクロの記述をすればよいだけなのですが、 同僚にこの新マクロを配布しなければなりません。 なるべく同僚の手間を減らそうと考え、関係のありそうなアドインについて調べたのですが、 ワークシートのコードを変更せず(Changeイベントを追加せず)に、アドインを呼び出す方法が分かりません。 どなたか、詳しい方教えて頂けないでしょうか? よろしくお願いいたします。

  • 検索の方法(エクセル マクロ)

    マクロは記録マクロしかできない超初心者です。 エクセルのsheet1のA1のセルに入っている内容(都度変更)と同一のセルをsheet2で検索し、カーソルをそこに移動させるマクロ記述をしたいのですが、どうなりますか。 記録マクロで、sheet1のA1をコピーし、sheet2に移動して検索窓で貼り付けて「次を検索」とやったのですが、記述をみるとA1の内容がそのまま記述されていて汎用性が無いようです。 よろしくお願いいたします。

  • マクロがコードに記録されない

     今晩は、宜しくお願いします。  エクセルのシートに写真を取り込んで、「ある大きさにサイズ変更 ⇒ 同じ大きさのセルに 移動させる」を「マクロの記録 ⇒ マクロの終了」でマクロを作成し、別のシートでも実行させ たいのです。  実は、あるエクセルファイルでは、うまく実行出来たのですが、今日、同じやり方で、別のエ クセルファイルでマクロを作成しましたが、マクロが全く実行されません。  「マクロ ⇒ 編集」からマクロコードを見ても、あるサイズに変更するところのマクロコードが 記録されていません。  これは何故でしょうか。  また、「相対参照で記録」というオプションがありますが、これが何らかの関係があるのでしょ うか。  どうしても理由がわかりません、以上、宜しくお願いいたします。

  • エクセルのマクロ記録について

    エクセル2007でマクロ1の記録を行い「更新」ボタンにマクロ1を設定しています。Sheet1からSheet12迄の入力データを「更新」ボタンクリックで 削除するように記録しています。 Sheet1からSheet12をシート保護した場合マクロ1は実行エラーになり 各シートを保護解除すると正常に実行します。 Sheetがまたがるマクロの記録はシート保護をするとだめなのでしょうか? 各Sheet共入力セル以外をロックしたい為、シート保護をかけようと思います。

  • エクセル マクロ初心者です エクセルが重たいです

    自分はいま一つのエクセルのファイルに8つのシート、93個のマクロ?というかSubで始まってEND sub で終わるコードがあります。加えて、それぞれに対応するボタンもあるせいか非常にエクセルのファイルが重たいです。 運動部のシュートだったり、シュートコースや試合展開などを記録するもので、今後さらに項目やマクロを追加していこうと考えていたのですが、開くのも重たいし、保存するのも重たくて難しいのかなと考えております。 実際この程度の情報量でエクセルが重たくなるものなのでしょうか?自分のパソコンが悪いのかなとも考えています。せっかく作ったファイルとマクロなのでこのまま使えないとあきらめるのは苦しいです。 何かいい方法があったら教えていただきたいです

専門家に質問してみよう