• ベストアンサー

ExcelのVBでsheet名を一気に変させるのは可能?

極窓等を使用すると拡張子など一気に変換できます。 ↑これと似た操作をExcelのVBを使用し、sheet名を一気に変換することは可能でしょうか? 手作業だとかなりのsheet数があるので時間短縮のため何か良い方法はないかと思いまして。 ※注意点 1.sheet名は規則的かつ配列等に対応できるような名前を使用する。 2.ファイル単位でデータは管理しません。 (1A.xls、2A.xls、3A.xls … 等は禁止) 例>sheet名 1A 2A 3A 4A … → 1B 2B 3B 4B … と一気にsheet名を変更。 とこんな感じにしてみたいのですが、可能でしょうか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

確たる変更ルールが存在しないシート名の命名をした場合(プログラムで組めない場合)、シート名タブの、見た目で左から順々に、A1セルから順に新変更後のシート名を入力しておきます。場合によっては、新ファイル名の入力時に、オートフィルが使えるかもしれません。 Sub test01() Dim sh As Worksheet i = 1 For Each sh In Worksheets sh.Name = Cells(i, "A") i = i + 1 Next End Sub を実行します。 既回答より少し自由度が上がります。

u-mesh12
質問者

お礼

お礼が送れてすみませんm(__)m こんな簡単にできるとは…!? とても参考になりました。 アドバイスありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

Excel VBAでコレクションWorksheetsを通じて、Worksheetオブジェクトにアクセスする方法を知っているなら、可能だと思います。こんな感じ: For Each sh In Worksheets sh.Name = rename( sh.Name ) Next rename()は、ユーザ定義関数として適切に定義してください。

u-mesh12
質問者

お礼

Worksheetオブジェクト 色々調べて試してみました。 私には結構使い勝手のあるも言語になりそうです(^_^; アドバイスありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルのドラッグ機能について

    初めまして、エクセルのドラッグで質問があります 下記の様な状況 A B C D E F  ̄ ̄ ̄ ̄ ̄ ̄ 1あいうえお 2かきくけこ 3さしすせそ    .    .    . 155あかさたな とあるとします 上記の図を別のフォルダのシートのA1(自動リンクさせるため)に 'D:\?????\文字\[配列.xls]シート1'!$B1と貼り付けました 次に 貼り付けたA1からA2、A3~以下略へドラッグして行くと A1='D:\?????\文字\[配列.xls]シート1'!$B1 A2='D:\?????\文字\[配列.xls]シート1'!$B2 A3='D:\?????\文字\[配列.xls]シート1'!$B3 とドラッグがされますが これを列A,行1~列A,行11に A1='D:\?????\文字\[配列.xls]シート1'!$B1 A2='D:\?????\文字\[配列.xls]シート1'!$B15 A3='D:\?????\文字\[配列.xls]シート1'!$B29           .           .           . A11='D:\?????\文字\[配列.xls]シート1'!$B155 と間隔的(規則的等)にドラッグをかける事は可能でしょうか? 手打ちだと時間が掛かり過ぎて大変です もし可能でしたらご回答を宜しくお願い致します               

  • EXCELで別ブックのセルを参照 シートを替える

    EXCEL初心者です。 毎日四苦八苦しているのですが、行き詰ってしまったのでご教授ください。 使用しているブックをA.xlsとして、 別ブックB.xlsのセル参照を、 ='Z:\[B.xls]Sheet1'!$B$1 のようにしています。 この Sheet1 の部分のシート名をA.xlsの、例えばA1に入力することで、 毎回シート名を変えられるようにしたいのですが、 ='[B.xls]( ココ )'!$B$1  ココの部分をどのようにしてよいかがわかりません。 A.xlsのパス名から書けばよいのかなと思ったのですが、 どうもうまくいきません。 何分必要にせまられてEXCEL勉強し始めたばかりです。 初歩的な質問ですが、すみません、よろしくおねがいします。

  • セルと同じシート名のシートを探す

    vb初心者です。 よろしくお願いします。 シート名AのセルB3に入った文字と同じシート名を探させたいと思います。 例えば シートAのB3に"万円"と入力された場合、 "万円"シートをアクティブにするという感じです。 よろしくお願いします。

  • エクセル 別ファイルから シートを リンクを張らずに コピーしたい

    エクセル2003 1~4  はファイルの状態の説明です。 やりかたを質問したい部分は 5です。  1、ファイル(ブック)A.xls → 計算式が大量に入った数シートからなるファイル があるとする。 2、A.xls を そのままコピーし コピーされたファイルは B.xls に リネーム。 3、A.xls は 計算式等は変更しないが、データを変更し通常業務で使用。 4、A.xls の新バージョンを作るために B.xls を使って計算式等を編集。 (複数あるシートのうち一部シート(シート名 「あいうえ」 とする)のみの変更に加え さらに新シート「さしすせ」を作成) 5、A.xls のシート名 「あいうえ」をB.xlsで作った シート名 「あいうえ」と置き換え、 さらに新シート「さしすせ」もB.xlsからコピーして追加する。   普通にシート名 「あいうえ」や 新シート「さしすせ」を選択し  コピーを行うと B.xls からリンクを張った状態でコピーされて  しまう。たとえば シート「あいうえ」セルA1の中身を見ると  =[B.xls]あいうえ!A1*2+1 といったように [B.xls]が付いて  コピーされる。  これを回避して、単にそのまま丸ごと(A.xlsの中だけで編集したかのように) シートをコピーするにはどうしたら よいのでしょうか?  長くなってすいません。  よろしくおねがいいたします。  

  • 別のbookのシート名を自動に貼り付ける

    http://www2.odn.ne.jp/excel/waza/sheet.html#SEC8 参考にして、シート名をセルに表示させたいです。 参考book [s.xls]シート名はそれぞれa,b,c,とあるとします。 表示させたいbookは[x.xls] こちらのシート名はd,e,fとします。 x.xlsの各シートa1の欄に、s.xlsのシート名を自動で表示させたいです。 dのシートにaのシート名 eのシートにbのシート名 fのシートにcのシート名 2枚目のシートが変更できませんでした。 すべてaのシート名が表示されてしまいます。 =MID(CELL("filename",s.xls$A$1),FIND("]",CELL("filename",s.xls$A$1))+1,31) にしました。 よろしくお願いいたします。

  • Excel2000マクロ_大量のシート名を楽に変更するマクロ

    何方か、回答を宜しくお願いします。 deta.xls(多数のシートが有る)シート名変換.xls(マクロが書いてある) 上記の2つのファイルが有りますが、やりたいことはdeta.xlsがアクティブの 時にショートカットでマクロAを起動して、シート名変換.xlsの「シート名」と いうシートのA1から下方向にdeta.xlsのシート名を所得する。 そして、マクロ終了後所得したシート名を変えて。 deta.xlsがアクティブの時にマクロBを起動して、「シート名」のA1から下方向に deta.xlsのシート名を変更する。 宜しくお願いします。 下記参考 Sub マクロA() Dim i As Worksheet ThisWorkbook.Worksheets("「シート名」").Columns("A:A").ClearContents '書き込む前にA列のデータをクリア Dim WS As Worksheet For Each WS In Worksheets

  • 【VB6】EXCELのシート名を変更したい

    お世話になっております。 VB6(visual basic 6)プログラムからEXCELのシート名を指定したいです。 EXCEL:EXCEL 2000 OS: win XP 以下の記述ではシート名がデフォルトのままです。 (sheet1のままで変更できていない) Dim fs As Object Dim oApp As Object Set oApp = CreateObject("Excel.Application")'EXCEL起動 oApp.Visible = True oApp.UserControl = True oApp.Workbooks.Add '新規のワークシートsheet1を追加する oApp.Cells(1, 1) = "シート名を指定したい!" 'セル入力はできた oApp.Sheets("sheet").select oApp.Sheets("sheet").Name = "新シート名" ご覧のように (1)自動EXCEL起動して (2)セル1,1に文字入力して (3)シート名を指定 しようとしております。 セル(1,1)に「シート名を指定したい!」は入力されております。 ブック名(ファイル名)はデフォルトのBook1.xlsです。 シート名の指定方法が間違っているからうまくいかないと思っております。 どうぞよろしくお願いいたします。

  • Excel VBA 全てのsheetを対象にオートフィルターを一気に解除したい

    1つのbook.xlsに対して複数のsheetがあり、 仮)1 2 3 … 40個ぐらいのsheetがあるとします。 ▲条件 1sheetはオートフィルター機能を使用しているが…、2sheetは使用していない、規則性や順番などはなくオートフィルターを使用しているsheet、使用していないsheetがランダムに並んで混在しています。 ▲処理したい内容 で、行いたい処理は全てのsheetを対象にオートフィルターを一気にVBAで解除したい。可能でしょうか? アドバイスよろしくお願い致します。

  • EXCEL2003で別ブックのシートの名前の定義を使いたいのですが

    EXCEL2003を使っています。 A.xlsというブックのAAAというシートに「商品」という名前の定義をしたテーブルがあります。このシートAAAをB.xlsというブックにコピーし、B.xlsのシートBBBの中で入力規則の元の値として、VLOOKUPの範囲名として使いたいのですが、入力規則の場合は、「元の値はエラーと判断されます。続けますか?」というメッセージが出て使用できません。 このとき、A.xlsは別場所なので存在しません。名前の定義のあるシートを他のブックにコピーして使用するのは無理でしょうか?

  • フォルダ内のxlsをシートごとに別ファイルにしたい。

    現在開いているブックのシートごとにブックにするマクロはあったのですが フォルダ内のブックを一気にばらすことはできませんか? ---元--- ./甲.xls(シートa,シートb,シートc) ./乙.xls(シートa) ./丙.xls(シートa,シートb) ---元--- ---先--- ./甲a.xls(シートa) ./甲b.xls(シートb) ./甲c.xls(シートc) ./乙.xls(シートa) ./丙a.xls(シートa) ./丙b.xls(シートb) ※シート名もしくはseqをつけて分割 ---先--- まとめてPDFを作ろうかとしたら複数シートがうまく行かないので 1ブック1シートの形式にできればと思ってます。 (通常時は複数シートがいいので1ファイルづつ作業は考慮したくない) できましたらお願いいたします。