• ベストアンサー

並べ替えマクロでシートの名前を変更した場合

以下のマクロを記録しました。 「Sheet1」でA1:B20を選択して、昇順の並べ替えを実行して終了です。 VBEで中身を確認すると、途中にシート名の"Sheet1"が記述されています。 この内容だと、シート名を変更したり、別のシートで実行する場合は、マクロのシート名の記述を変更しないと実行できません。 これだと不便なので、シート名にかかわらず実行できる昇順マクロを作りたいのですが、何か方法はありますか。

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8522/19371)
回答No.1

「WorkSheets("Sheet1")」を「ActiveSheet」に変えるか「WorkSheets("Sheet1").」を削る。 例えば WorkSheets("Sheet1").Range("A1") は ActiveSheet.Range("A1") または Range("A1") に書き換える。

don-naldo
質問者

お礼

ご回答ありがとうございます。 「WorkSheets("Sheet1")」を「ActiveSheet」に変更することで解決しました。ありがとうございました。

その他の回答 (1)

  • trytobe
  • ベストアンサー率36% (3457/9591)
回答No.2

マクロの編集をして、範囲を示す部分から「Sheet 1」などシート名に関する文字を消して、範囲指定として A1:B20 という表記だけにしてマクロを上書き保存してはいかがですか。

don-naldo
質問者

お礼

ご回答ありがとうございました。 回答No1のchie65535さんの「WorkSheets("Sheet1")」を「ActiveSheet」に変更するという方法で解決しました。 ありがとうございました。

関連するQ&A

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

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

  • 【Excel VBA】シート見出しの色を変更する

    Excel2003を使用しています。 シート数が10数枚のBookが複数あり、これらのBookで、シートのデータが変更されたら、シート見出しに色を付けるマクロを作りたく、とりあえず、マクロの記録をとってみました。 マクロの記録で、シート見出しの色を変更するコードや複数のシートを選択するコードはわかりましたが、実際にしたいことは、シート名が4桁の数値のシートにだけ、このマクロが実行されるようにしたいのです。このようなことは可能でしょうか?可能であれば、どのようにコードを記述すればいいでしょうか? よろしくお願いします。

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

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

  • マクロでひとつ前のシートの名前を変更する方法

     エクセルのマクロにてシートの名前変更がうまく行かず困っています。 内容はsheetの名前が「2-1」「2-2」「2-2 (2)」「2-2 (3)」「2-2 (4)」だとします。 シート名に枝番があるsheetの中の文章をコピーし新しくBookを開きそこに貼り付けていく、というマクロを作成しました。 しかし「2-2」は枝番が無いので計算するsheetと認識されません。 Sheets("2-2").Name = "2-2 (1)" にして出来ることは出来るのですが、デバックになりチェックし修正した後に、実行すると「2-2 (1)」に変更してしまったので、「2-2」なんてシートは無い!となりますよね? そこで、また実行したい時は2-2シートの枝番を消して実行したり、エクセルを全部閉じてから実行していました。 そこで、もし「2-2」なら「2-2 (1)」にして、「2-2 (1)」がすでにあるなら名前はそのままにし、実行というマクロの作成方法を教えていただきたいです! それと、「2-2 (2)」の前のシートを強制的に「2-2 (1)」にする。のようなマクロがあったらそれも教えて頂けたらうれしいです。お願いします!

  • シートコピーと値の転記 シート名変更マクロを

    エクセル2010で マクロのご教授をお願いいたします。 BOOK1の Sheet1 A1~A10に 数値1000が入力されているとして Sheet1のシートのコピーを作成 Sheet1にもどり A1~A3の値だけコピーして 作業列C1に 値を貼り付け A1~A10 をクリアーにしたのちに  ※↓が うまくいきません。 A1の値→ A8 A2の値→ A9 A3の値→ A10 に入力 させるマクロは どうなるでしょうか? マクロの記録で いろいろと やってみましたが どうも ※の部分が うまくいきません どう考えてもエクセルに対しての 理解不足だと思われますが、ご教授のほどお願いします。 おこなった自動マクロの記録は↓です。 マクロの記録開始する 名前 シートコピー Sheet1を右クリックして移動またコピー コピーを作成にチェックをいれ OK コピーシートが作成される。 Sheet1をクリックしなおして A1からA3をコピー  作業列として C1に 形式を選択して貼り付け 値 A1~A10を delete でクリア C1~C3を選択 コピー A8に 形式を選択して貼り付け 値 マクロの記録終了。 あと Sheet1をコピーするさいに シート名を前日の日付に自動的に変更できればと いいなと 考えておりますが できるのでしょうか? 例えば、本日でいえば シート名→ 0112 のような シート名を変更できればすてきだと おもいます。 どうぞ よろしくお願いします。

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

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

  • エクセルのマクロでシートの選択について

    よろしくお願いします WinXP SP3でEXCEL 2003を使用しています ブック名がtest.xls シートが("目次", "1", "2", "3", "4", "5") とあります ここでは仮に"5"までシートがありますが本来は変数であり、n + 1のように扱いたいです 以下のマクロで"目次"以外の全てのシートを選択しました ~~~~~ Sub Macro1() Dim i As Integer i = 2 Sheets(i).Select For i = i To 6 Sheets(i).Select False Next i End Sub ~~~~~ このマクロですとArrayを使わずとも、"目次"以外のシートを選択できますが For i = i To 6 の6を7以上にするとエラー終了します そこで以下の条件にてシートの選択を行いたいのですが方法がわからず困っております 1・シートの数が多くても"目次"以外のシートを全て選択したいです 2・iがシートの数を超えた場合はエラー終了せず、マクロを終了させたいです 3・Sheets(Array( "1", "2", "3", "4", "5")).Select のようなマクロは組みたくないです 大変恐縮ですが、教えていただけますでしょうか できればマクロをVBEにコピー&ペーストするだけで実行できるような 状態にしていただきますと非常に幸いです 何卒、よろしくお願いいたします

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

    エクセル2010でのマクロについて、教えてください。 「全体を選択」→「昇順で並び替え」というマクロはどのように書けばできますか? マクロの記録でやると、そのシートでしか使えないマクロになってしまいますが、 データ量も違う色々なシートで使用したいのです。よろしくお願いします。

  • 選択セルをkeyとした 並べ替えマクロ?

     マクロを組んでいます。  xlsxではなく、xlsを使用中です。    顧客情報を管理するエクセルデータ-にマクロを組もうとしています。   ■並べ替え   選択したセルが「ふりがな」という項目だった場合、   「並べ替えのKEY」を、ふりがなにして、並べ替えが実行される。  選択したセルが「生年月日」だった場合は、今度はそれが「KEY」として並べ替えマクロが実行される。 ・・・そのようなマクロを組みたいのですが、どのようにしたらよいでしょうか?  アドバイスを、よろしくお願いいたします!

  • EXCEL;VBAマクロ:シート名変更

    アクティブシートの現在ついている名前をマクロの中で使用せずに、シート名をABCとかに変更するにはどのようにマクロ記述すればいいか。

専門家に質問してみよう