• 締切済み

エクセル・ブックの10以上の「シート名変更」と「色変更」

エクセルブックの10(一例)以上の   「下記作業」 を一挙に行いたい。自分で作ったものは自己責任という ことでいざ知らず、他人様の作ったブックの 「シート名変更」 「シート見出し色」 「シート名並び替え」(ABC順、数字順) は「単純手作業」でやる他無いですよね。殆どの場合、バラ バラになっていて、どのシートを印刷したかとかの確認 や、「矛盾のあるシート名変更」「並び替え=挿入・削除」を 手作業でやるのは「本来の作業」以上に疲れます。 何か良い「裏技」有りませんでしょうか

  • mabomk
  • お礼率62% (312/503)

みんなの回答

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

ある程度の規則性は必要ですが、面倒な繰り返し作業はマクロにやらせるのが一番です。 参考に、、、 下記はアクティブブックのシート順を並び替えます。 Sub SheetName_Sort() Dim wb As Workbook, tmp As Workbook, i As Integer, s As String On Error GoTo ER:  Application.ScreenUpdating = False   Set wb = ActiveWorkbook   Set tmp = Workbooks.Add  With tmp.Worksheets(1)   For i = 1 To wb.Worksheets.Count    .Range("A" & i).Value = wb.Worksheets(i).Name   Next i   .Range("A2").CurrentRegion.Sort key1:=.Range("A2"), _               order1:=xlAscending, header:=xlNo   For i = 1 To .Range("A65536").End(xlUp).Row     s = .Range("A" & i)     wb.Worksheets(s).Move _         after:=wb.Worksheets(wb.Worksheets.Count)   Next i  End With  tmp.Close savechanges:=False ER:  Application.ScreenUpdating = True End Sub

関連するQ&A

  • Excel 閉じているブックのシート名を変更する方法

    いつもお世話になります。 Excel2002を使用しています。 ブックAを開き、ここから閉じているブックBのシート名を変更することは可能でしょうか? 理想としては、ブックA上のボタンをクリックしたときに、閉じているブックBのシート名が変更できれば・・・。 変更する名前は常に同じものでOKです。以上、よろしくお願いします。

  • フォルダ内にある複数ブックのシート名の変更

    エクセルのVBAについて質問させて下さい。 現在、アクセス2000でクエリをマクロのワークシート変換で 規定のエクセルブック(2000)にエクスポートしています。 項目別なので30以上のブックになっています。 これを毎月の更新で12ヶ月分エクスポートします。 問題なのがクエリ名がシート名になっていますが、このシート名を 月によって変更したいのです。ブックが30以上あるので手作業では 自分1人の作業だとやってしまうのですが、不在時に他の人にやって もらうには無理があるかなと・・・。 イメージとしては、マクロブックのコマンドボタンを押すと そのフォルダにある30以上のブックの一番右にあるシートを マクロブックのセルA1に入力した月に変更し、変更したシート内の 1行目の項目名の長さに合わせてセルの幅を変更し、項目名に色をつけるというイメージです。 今までは2項目くらいだったので手作業でやっていたのですが、 30以上になると手作業ではつらい状況です。 VBAは初心者なので答えをいただけると大変ありがたいです。 よろしくお願いします。

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

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

  • excel マクロで特定シート名だけを変更させない

    今、ブックに"作業シート1"と"集計シート"があります。 "作業シート1"に貼り付けたデータから特定条件に合うものを集計シートへ抜き出し、作業日のシート名でグラフを作るマクロを作っています。 作っているマクロの中でシート名を指定していることが多いので、"作業シート1"と"集計シート"だけはシート名を保護したい(書き換えても元の名前にすぐ戻ったり、とか)のですが、どうすればいいでしょう? ブック全体の保護だと、シート追加は出来ないですよね

  • Excelのブック内のシート名を順番に表示させる

    類似の質問を探していろいろ試してみたのですがどうしてもうまくいかなくて・・・教えてください。 ブック内にシートが複数枚あるとします。 最初の1枚目のシートは一覧表となっておりそのシートのセルA1から順にA2、A3…と下に表が続いています。 セルA1には2枚目のシート名が自動的に入力される セルA2には3枚目のシート名が自動的に入力される というようにブック内にあるシート名を順番に セルに表示入力できる方法はありますか? ちなみにVBAはほとんど触ったことはありません。 よろしくお願いします。

  • エクセルでシート名でソート

    エクセルのシートをシート名でソートしたいのですが、VBAで以下の様な条件で出来るのでしょうか。 ・シートは必ず5枚以上で、最大70枚です。 ・シート名は、半角英数字、漢字を使用しています。 ・ソートの順は、1文字の「0~9」→「A~Z」→「0_0~9_Z」→「A_1~Z_Z」の順になります。 ・シートの一番左端と右端3シートは並び替えしない(漢字名シート)。 例(ソートするシート) 0→4→5→F→0_1→0_9→4_1→5_4→5_5→F_5 「シートの並び替え」で検索してみましたら以下のサンプルが 有りましたので少し変更してみました。 ********************* Sub MoveSamp1() Dim i As Long Dim j As Long For i = 2 To Sheets.Count - 3 '---最初から最後の3つ前のシートまで For j = i + 1 To Sheets.Count '---i番め以降のシート全て If Sheets(i).Name > Sheets(j).Name Then '---シート名の比較 Sheets(j).Move Before:=Sheets(i) '---(1)シートの移動 End If Next j Next i End Sub ********************************************************** 結果 0→0_1→0_9→4→4_1→5→5_4→5_5→F→F_5 上手くいきませんでした。 他の方法として   ブック追加、シート名をセルに書き出し、セルとシート名比較、シート移動、ブック削除 なども試してみましたがダメでした。 シート名が数字ならば行くようですが。  エクセルは2003~2010で考えています。 すみませんが良いお知恵をお貸しくださいませんか。

  • Excel2007 マクロ シート名の変更とブックの作成

    Excel2007 マクロ シート名の変更とブックの作成 10個のシートがあります。 各シートには、企業名と担当者名が 記載しています。 その企業名と担当者名をシート名に変更したいです。 <例> ○○商事_佐藤 また、変更したシート名で各シートごとに ブックを作成したいです。 どのようなマクロを作成すればよろしいでしょうか。 添付のように企業名と担当者名が記載してあります。 アドバイスよろしくお願いいたします。

  • Excel 複数のシート名を一括変更できる名簿作り

    Excelでシート名を変更する際、特定のブックの特定のセルに文字を打ち込むと、他の全てのブックのシート名が一括で変更されるようにすることは可能でしょうか。 例えばですが“名簿”というブックの「A1~A5」に文字を入力すると、他の全てのブックの「Sheet1」には“名簿”ブックの「A1」に打ち込んだ文字が反映され、「Sheet2」には“名簿”ブックの「A2」…と、一括で変更できる方法はないかと思っています。 他の全てのブックは一つのフォルダの中に集約します。 また、ブック名だけ変えて中身は原本のコピーをしていきます。 3000を超えるブックを作るので、変更をすることになった時は全て手作業になるかと思うとゾッとします…。 調べていると、VBAというものを使いそうというところまで分かったのですが、こことはカテゴリが違っていましたら申し訳ございません。

  • エクセル 単一シートから成る複数のブックを1つのシート上にまとめる方法

    いつもお世話になります。 今回は、単一シートから成る複数のブックを1つのシート上にまとめる方法を教えていただきたく、質問させていただきました。 具体的に言いますと、ある1つのブックの1つのシートに500以上の商品名、使用量等が入力されており、そういう同じ形式のブックが30ほどあります。この複数のブックを1つのシート上にまとめたい(上からずらっと行を空けずに並べたい)のです。順番は問いません。手作業でコピー&ペーストを繰り返せば出来ることなのですが、もし簡単に出来る方法があれば教えていただけないでしょうか? よろしくお願い致します。

  • ExcelVBA: アクティブシート/アクティブブックの変更を禁止したい?

    お世話になります。 最初に「アクティブシート/アクティブブックの変更」というと (1)今、あるブック、シートがアクティブになっている(最前面に出ている)状態から、別のブック、シートをクリックして、そっちにフォーカスを移す。別のブック、シートがアクティブになる。 という意味と、 (2)あるブック、シートがアクティブになっていて、その内容を変更する。シートの名前や、シート状の式を変更する という意味と2つあると思いますが、(1)の方です。 ExcelVBAで、あるワークブックの、あるワークシートにおいて、ユーザーフォームを使って作業をしているとします。 この作業はしばらく掛かるので、ユーザーフォームを(モードなしで)出しっぱなしにして作業してもらいます。 その時に、別のシート/ブックに行かれてしまうと整合性が分からなくなってしまうので、別のシート、ブックをクリックしてフォーカスの移動をしようとしたり、今のブックをクローズしようとしたり、今のシートを非表示にされたりした場合は、その動作を検知して、 「別のシートにいくならいったんユーザーフォームの作業をやめてください。やめていいですか(Yes/No)」 と言い、Yesというとフォームを閉じ、Noの場合は別のシート、ブックへのフォーカスの移動、今のブックのクローズ、今のシートの非表示化の動作をとりやめ、作業中のシートにフォーカスを当て続けたいです。 あるいは、それが難しければ、ユーザーフォームの作業中は別のシート、ブックへのフォーカスの移動、今のブックのクローズ、今のシートの非表示化の動作を禁止し、それらの操作をしようとしたら、 「ユーザーフォームの作業中に別のシートにいくことはできません。いくならいったんユーザーフォームの作業をやめてください。(Yes)」 と言うだけでもいいです。 上記のような動作をさせるにはどうすればいいでしょうか。 よろしくお願いします。

専門家に質問してみよう