• ベストアンサー

VBA,シート名を変数で変更

win98、excel2000使用です。 マクロで各シートの「A1」のセルにある「値」をシート名として変更する方法を教えてください。 単に変更するだけならどうにかできるのですが、力不足で 変数で上記のようにする方法がなかなか思うようにできません。 よろしくお願い致します。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんな感じでしょうか。 Sub Sample()   Dim strSheetName As String   Dim Sh As Worksheet      On Error GoTo ErrorHandler   For Each Sh In ActiveWorkbook.Sheets     strSheetName = Sh.Range("A1").Value     Sh.Name = strSheetName   Next Sh ExitHandler:   Set Sh = Nothing   Exit Sub ErrorHandler:   Sh.Activate   Range("A1").Select   MsgBox "シート名として不適切です。または、" & vbCrLf & _     "既に同名のシートが存在します。", vbCritical, "エラー"   Resume ExitHandler End Sub

yucky6624
質問者

お礼

御回答ありがとうございます。 感謝、感謝です。 一発で、各シート完璧です! すごいですね。私も、もっと勉強します。 ということで、お礼の言葉に代えさせていただきます。

関連するQ&A

  • EXCEL関数でシート名を変数にする。

    EXCEL関数で以下の事をしたく色々ためしたり過去の質問も 見たのですが分かりませんので教えてください。 一つのファイル内にシート1、シート2、シート3・・・のシートがあります。 シート3のA1のセルに =変数A1の式を入れたい。 変数A1の意味は、他のファイルのあるセルにシート1かシート2…を 入れておきその値でシート1のA1から値を読むかシート2…のA1から 値を読み込みかという事をしたのですがどのようにすればよいですか? 二つくらいだとif文でも出来るのですが、多数のシートを対象としているので変数で処理をしたいのですがどのようにすればよろしいでしょうか? =[別ファイル]シート4!A4!A1 のような式で、[別ファイル]シート4!A4のセルに入っているシート名で 読み込むセルのシートを変えたいと言うことです。 分かり辛い説明で申し訳ありません。

  • シートをコピー、シート名を変更

    Windows8でExcel2000を使っています。 こういうマクロはどう書けばいいんでしょうか? 同一ファイル内で、シートを複数枚コピー。 複数選択したセルに入力された文字列を、上記でコピーされたシート名に反映したい。 「原本」というシート名のシートがあり、それを元に一年分の表を作りたいのですが 今は手で11枚コピーを作った後1枚ずつ名前変更でやっています。 シート名にしたい文字列は現在なら「2015年01月」~「2015年12月」です。 セルに「2015年01月」~「2015年12月」を入力、選択した後マクロ実行で シート名変更に反映できればありがたいです。

  • エクセル マクロでシート名変更

    Excelで、作成してあるフォーマットに新しく数値をコピーして完成した表を別のブックに移動して保存しようと考えています。その際、シートのA1セルの値を自動的にワークシート名に持ってきたいのですが、やり方が分からず困っています。 シート名のところ以外は、なんとなくマクロの記録を使ってできそうなのですが、A1セルの値を自動的にシート名にすることができずに引っかかっています。 いい方法があれば教えてください。 よろしくお願いいたします。

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

    エクセル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 シート名を自動変更するマクロ

    いつも御世話になっています。 質問内容ですが、特定セルに入力した値を特定のシート名に反映させるマクロについてです。 例えば、 Sheet1のセルA1に「会議室」と入力した場合、Sheet5のシート名が「会議室」となり、 Sheet1のセルA2に「休養室」と入力した場合、Sheet7のシート名が「休養室」となる。 というようなものです。 (※Sheet番号は連番になっていません) なお、シート名変更用の入力シートはSheet1のみです。 できれば、各シート名を変更する際、以下のようにしたいと考えています。 Sheet5 元シート名:負荷計算(1)            ↓ Sheet5 変更後シート名:"Sheet1のA1で入力した名前" 負荷計算    教えて頂けると助かります。 宜しくお願いします。

  • マクロでシート名を変更を変更したい

    A1セルの値をシート名にするマクロは以下のとおりだと思います。 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Target.Address = "$A$1" Then Sh.Name = Target.Range("A1").Value End Sub では、E6セルの値をシート名にすることは可能でしょうか? よろしくお願いします。

  • EXCELで文字変数のシート名を参照できますか?

    EXCELのセルに入力する計算式に、条件により異なる文字変数のシート名を入力したいのですが、可能でしょうか? だめなら、シート順でもいいのですが? それなりの関数または方法などがありましたら教えてください。 なるべくなら、マクロを使わずに処理できますでしょうか?

  • シート名変更のマクロ

    QNo.4400605『エクセルでシート数を指定して挿入するマクロはどうやって作ったらいいでしょうか。例えばA1セルに挿入したいシートの数を入力するとその数のシートが作成されるというようなマクロを作りたいのですが』という質問をしてそれについては解決しましたが、作成されたシートの名前を1~40のような数字に変更するマクロが分かりません。作成するシートの枚数は決まってなく、25シートであったり、40シートだったりします。A1:A40に1~40と変更後のシート名を入力して、それをシート名に反映させるマクロは作れたのですが、毎回シート枚数が変わるので「インデックスが有効範囲にありません」と出てしまいます。型としては、元シートがあり、そこでシート数を指定しシートを挿入し、そのできたシートに数字の名前をつけたいと考えています。長々なりましたが教えて下さい。

  • VBA アクティブなセルのシート名を取得したい

    エクセル2010使用です。 VBAで、アクティブなセルのあるシート名を取得する方法を教えてください。  マクロ.xls (マクロシートA1) ←今回のマクロを書き込んだファイル  参照.xls (参照シートA1)  入力.xls (入力シートF3) この3つのエクセルファイルを開きます。 ( )内はそれぞれの前面にあるシート名と選択されたセルです。 入力シートのF3にカーソルをおいて下記マクロを実行すると   MsgBox ActiveSheet.Name & ActiveCell.Address 「マクロシート F3」と返されます・・・ ほしい結果は「入力シート F3」なんです。 このような場合にアクティブセルのあるシート名を取得する方法があれば教えてください。 よろしくお願いいたします。

  • シート名を変数で持つには?

    皆さんの知恵をお借りしたいと考えております。 たとえばシート名「sheet1」のA1セルに「リンゴ」とデータが入っているとします。 次にシート名「sheet2」のA1セルに「sheet1」データを入れます。 そしてシート名「sheet3」のA1に「リンゴ」を表示させたいのです。 ”=sheet1!A1”とすれば簡単に表示されるのですが、sheet2のA1に入っている「sheet1」というデータを利用してsheet1のA1セルを参照できないでしょうか? お知恵を貸してください。

専門家に質問してみよう