• ベストアンサー

ExcelVBAでワークシートのオブジェクト名を調べ、「Sheet(何番)」まであるか調べる方法

Excelのプログラムで、新規作成の初期段階ではワークシートのオブジェクト名は「Sheet1」とか「Sheet2」とかなってると思うのですが、そのオブジェクト名を調べ、ワークシートの数を調べるコードが分かる方がいれば教えてください。 具体的には書けないのですが、1から順に2、3……とワークシート番号があるかどうか調べ、オブジェクト名とワークシート番号が一致しない、つまり、もうこれ以上ワークシートが存在しない場合、その判定を終了させるようなコードだとは思うのですが…。 回答よろしくお願いします。

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

  • ベストアンサー
  • kirara77
  • ベストアンサー率25% (117/464)
回答No.1

初めまして。 ご質問は単純にあるEXCELワークブック内にあるワークシート数を知りたいだけですよね? でしたら、ワークシートのオブジェクト名とかで探さなくっても、 『Worksheets.count』にてワークシート数は求められますよ。 一番最後のワークシートを参照したかったら、『Worksheets(Worksheets.Count)』のような記述になります。

miya_HN
質問者

お礼

はい、ワークブックのワークシート数を知りたいだけです。 おぉ!なるほど。そんなに簡単な方法があるんですね。 ありがとうございました。

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

関連するQ&A

  • ワークシートオブジェクトが編集できない

    質問させてください。 WinXPProでOffice2003Proを使っています。もちろん正規品です。 Wordでワークシートオブジェクトを使いたいのですが、エラーでつかえません。 別の端末で作った、すでにワークシートオブジェクトが使われている文書を開くことは出来るのですが、やはり編集ができません。 一度ofiiceをアンインストールしてフルインストールを実行しましたが、まったく症状が解決しません。 しかし、Excelを起動した状態でWordを開くと、ワークシートオブジェクトが使えるようになります。 どうやらWordがExcelの場所を見失っているようなのです。 しかし、Excelはインストールしてから場所も名前も変えていませんし、きちんとWordとおなじディレクトリ(C:\Program Files\Microsoft Office\OFFICE11)にあります。 どなたか解決法なり原因をアドバイスくださいませ。 宜しくお願い致します。

  • エクセル2003VBA ワークシートオブジェクト名でオブジェクトを取得する記述について

    いつも勉強させていただいております。 こちらの掲示版に以下の質問の回答がとても興味を引いたので その件について、更にご質問させていただきたいと思います。 http://oshiete1.goo.ne.jp/qa3595532.html ご回答では、シートのオブジェクト名の変更のやり方等が 回答されておられました。 で、シートオブジェクト名の変更については理解できたのですが、 このオブジェクト名を用いてそのオブジェクトをどのように取得すれ ばいよのか、コードの記述の仕方がわかりません。 VBE画面でシートの表示名が Test(Sheet1)とした場合、シートオブジェクトを取得するコードは どのように記述するのでしょうか。 宜しくお願いいたします。

  • エクセルでワークシートの順番を変える

    エクセルで10枚のワークシートを作りました。 それぞれに番号を振りましたが、番号順に並べたいと考えています。 これって可能ですか? エクセル2002 winxp よろしくお願いいたします。

  • Excel97でワークシートにワークシートを貼り付けたい

    エクセル97でワークシートを作っています。 作ったシートの上に、別に作ってあったシートを貼りたいのですが、セルの幅などが全然違うためきれいに貼れません。オブジェクトとして貼ることができればいいかなと思ったのですが、オブジェクトとして貼り付ける方法もわかりません。このような場合、どうしたらいいのでしょうか? ワードや一太郎に貼り付けて並べるということも考えたのですが、エクセルだけで完結させる方法がないかと思って質問しました。お願いします。

  • 【ExcelVBA】シートのCodeNameプロパティからオブジェクトを取得する方法

    いつも勉強させていただいてます。 業務でExcelVBAを使用していますが、ワークシートのCodeNameプロパティ値からワークシートオブジェクトを取得する方法はありますでしょうか。 以下、詳細です。 ・環境:Excel2003 ・概要    ワークシートのオブジェクト名:"shtFormat"    シート名:"フォーマット"  ガントチャートを作成するVBAなのですが、上記のシートをコピーして、実際に処理に使用するシートを作成します。  作成後も、ユーザフォームや別のデータ操作用ワークシートのイベントから操作するため、コピーしたシートを特定する情報を内部で保持しようと考えています。  そこで、CodeNameプロパティ値を保持しようと考えておりますが、CodeNameプロパティ値(文字列)からワークシート型のオブジェクトを取得する方法が分かりません。 ※ Nameプロパティはシート名を変更した際に使用できなくなり、断念しました。 ※Indexプロパティはシートの並び順によって値が変わるため、断念しました。 以上です。 宜しくお願い致します。

  • Excel VBAでオブジェクト名を変更する方法

    Excelでシートを新規追加するマクロを作っています。この時、下記のようなコードでシート名を変更するのですが、同時にオブジェクト名も変更する事は可能でしょうか? Sheets.Add ActiveSheet.Name = "テスト" なぜオブジェクト名も変更したいのかと言いますと、動的にイベントプロシージャを作成する際、下記のようなコードを記述してるのですが、シート名とオブジェクト名が一致してないとエラーが出てしまうんです。 Dim cdMoj as CodeModule Dim Ln as Long Set cdMoj = ThisWorkBook.VBProject.VBComponents(ActiveSheet.Name).CodeModule Ln = cdMoj.CreateEventProc("Click", "Command1") cdMoj.InsertLines Ln + 1, "MsgBox ""VBAで追加したマクロです。""" なにか良い方法がありましたらご教授下さい。どうぞ宜しくお願いします。

  • 1枚のワークシートにある表の分割(?)について、教えてください。

    1枚のワークシートにズラッと表が抽出されます。 それを1つの表に対して、ワークシート1枚とうようにすることは可能でしょうか。 または、その抽出された表を番号順に並べ替えることはできますか。(一枚のワークシートのままでもOKです) 番号は、A-1、D-2といったように、アルファベットのところがタイプで、数字が順に並んでいます。タイプを無視し、数字だけの順に並べ替えたいと思っています。 説明がわかりにくくて申し訳ないですが、教えてください。

  • ExcelVBA ユーザーフォームのオブジェクト名

    ExcelVBA ユーザーフォームのオブジェクト名について質問です。 Excel2003で、あるユーザーフォームのオブジェクト名を「ユーザーフォーム表示中」とし、 ユーザーフォーム表示中.Showで表示するように記述しました。 何度かテストを済ませ、他のプログラムも含めて完成したと思ったのですが、他のPCでエラー報告があり、コードを確認したところ、なぜか、ユーザーフォーム表示.Show(中の字が消えている)になっていました。 もちろん誰かが記述を変更することは考えられません。 以前、自分のPC内でも同じようなことがあり、いくら原因を探しても見つからず、ユーザーフォームのオブジェクト名を削除された記述に合わせて対処したことがあります。 これは何が原因なのでしょうか。 文字数制限か何かあるのでしょうか。

  • エクセルワークシートの貼りつけ

    エクセルのシートを挿入→オブジェクトから入れたいのですが、オブジェクトでエクセルワークシートを選択すると、エクセルの画面がワード画面の上のほうにいってしまって、操作できません。移動しようとしてドラッグ&ドロップしようとしても、吸い寄せられるようにすぐに元の位置に戻ってしまいます。これでは列間隔の調整なども出来ないため、困っています。何か原因があるのでしょうか?また、どうやったら直りますか?

  • エクセルVBAでシート名検索

    エクセル2000です。 あるブックにAAAという名前のワークシートが存在するかどうかの判定方法の質問です。 現在はそのブックを開き、 Sub test() For Each sh In ActiveWorkbook.Worksheets If sh.Name = "AAA" Then flag = "ありまする。" Else flag = "ないでござる。" End If Next MsgBox flag End Sub のように判定しています。 質問は、 1.開かずに判定することは可能かどうか?可能ならその方法 2.上記コードのように各シート総当り以外にシート名を検索する方法があるか?あるならその方法 です。よろしくお願いします。

専門家に質問してみよう