• ベストアンサー

シート選択

excelマクロで、シート選択の場合 Worksheets("シート名").select でできますよね? でもこの「シート名」に名前をいれずに、1枚目のシート、2枚目のシート、というように選択したいのです。 絶対指定ではなく相対指定というところでしょうか。 どのようにすればいいのか教えてください。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 Worksheets(1).Select のようにインデックス番号で指定します。 インデックス番号は、シートタブの左から順に付けられます。 シートの位置を変更すると、インデックス番号も変わります。 また、非表示のシートにもインデックス番号が割り当てられています。

KODAMAR
質問者

お礼

回答ありがとうございます。 無事できました。 間に数値を入れればよかったんですね。 詳しい説明もありがとうございました。

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

その他の回答 (1)

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.2

こんにちは。  Worksheets(1).Select で1番目のシートが選択できます。

KODAMAR
質問者

お礼

回答ありがとうございます。 シート名のところに数字を入れればよかったんですね。 これで順番とおりに選択できました。 ありがとうございました。

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

関連するQ&A

  • 複数シートの選択

    エクセルVBAで複数シートの選択をしたいのです。 シート名やシートの位置が変更される可能性があるので オブジェクトで指定したいのですが 記述方法が分かりません。 ##シートの位置 Sub mac1() Worksheets(Array(2,5)).Select End Sub ##シート名 Sub mac2() Worksheets(Array("aaa","あああ")).Select End Sub

  • シートの選択

    特に名前をつけていないシートを選択するときに、マクロで、右のシートを選択するのは、ActiveSheet.Next.Select でできたのですが、左のシートを選択する場合はどうしたらいいでしょうか?ちなみに、2つ左とかは?

  • EXCEL マクロ リストボックスよりシート名を選択してシートを選択

    こんばんは. エクセルを使って備品の管理システムを構築したいと考えております. マクロを使います. VBAは初心者です. ・備品を20種類ほどに分類し,シートも同様に20作りました. ・ウィンドウを2つに分割し,上下に並べています. ・上ウィンドウの最初のシート(シート名:備品一覧)のB2セルにリストボックスを設け,そのリストで20種の備品の中から一つを選択できるようにしています. ・リストボックスの側にマクロ対応のボタンを設置しております やりたいこととしては・・・ 『上ウィンドウのリストボックスで備品を選択し,ボタンをクリックすることによって,下ウィンドウでその選択した備品名のシートに移動する』 です. 私が組んでみたマクロは下記です. ---------------- Sub 備品を選択     Dim sheetname As String 'リストボックスからシート名を取得する sheetname = Range("B2").Value '下ウィンドウをアクティブにしてシートを選択する Windows(2).Activate Worksheets("sheetname").Select End Sub ------------------ エラーは,『Worksheets("sheetname").Select』のところで 【実行値エラー'9' インデックスが有効範囲にありません.】 参考書やグーグルで調べてもわかりませんでした. ご教授いただければ幸いです. よろしくお願い致します.

  • マクロでエクセルシートのコピー

    マクロでシート1を最後尾に名前をつけてコピーしたいと思ってます。 つけたい名前は、シート2のあるセルにかいてあります。 私は下記のように書いたのですが、エラーになってしまいます。 Worksheets("Sheet2").Select newsheet = Cells(1, 1) Sheets("Sheet1").Select Sheets("Sheet1").Copy After:=Sheets(newsheet) どのようにすればシートをシート名をつけてコピーできますか? 教えてください。 エクセル97です。

  • VBAで複数シート選択

    エクセルVBAで複数のシートを選択する場合、 Sheets(Array("AAA", "BBB", "CCC")).Select  と書くと思いますが、マクロを回してみないことにはシート名や枚数が特定できない場合、どのように記述したらいいのでしょうか? たとえば、新たに追加されたSheets(n)~Sheets(n+x)を選択するような場合です。 よろしくお願いします。

  • エクセルのVBAでシート名が重なるときの処理 

    お世話になります。 エクセルのVBAにてリストボックスで選択した単語をシート名に 反映させるマクロを作成しました。 が、一度シート名を作ると2回目に同じ単語を選択すると、 デバック?画面になってしまいます。 『同じ名前のシート名は作れません・・・』 希望としては、同じ名前が出たら自動に連番が割り振られる ようなものを希望しています。 マクロの記録で確認しても、やはり同じデバック要画面がでます。 別シートにシート名を反映させて、同じ名前がヒットしたら 文字列を追加して、そのシートに反映し続ける・・・ ようなことは考えられますが、どうも不細工で気が向きません。 もっとスマートな考えがあれば教えていただきたく よろしくお願いします。 参考に作ったVBAを下記します。 これだと、途中でシートを削除してしまうと デバック画面が発生してしまいます。 (マクロの切り抜きなので、  リストで選択したものが反映されるマクロではありません) Dim シート名 As String Dim n As Integer Sheets("伝票マスター").Select Worksheets("伝票マスター").Copy before:=Worksheets("伝票マスター") n = Sheets.Count Sheets("伝票マスター (2)").Select ActiveSheet.Name = "伝票" & n - 1 Range("D2") = n - 1 Range("D1").Select 、

  • 初歩的な質問です!sheetの選択

    よろしくお願いします! エクセル2003,Sheet1を右クリック>コードを表示を選択して、下のように記述したところ、予想と違う動作をしました。 sheet1,2のそれぞれのA1セルに各々のsheet名を入力したかったのですが、失敗した原因はどうしてでしょうか。activateをselectにしても変わりませんでした。 初歩的なことだと思いますが、どうぞよろしくお願いします! Sub macro() Worksheets("sheet1").Activate Cells(1, 1) = "sheet1です。" Worksheets("sheet2").Activate Cells(1, 1) = "sheet2です。" End Sub

  • シートの選択について

    エクセルのVBAにて、シートの選択について質問です。 直前まで【テスト1】と言うシートで作業をしていて、その後 Worksheets("テスト2").Activate Worksheets("テスト2").Select Range("A1").Value = 123 テスト2のA1に123と言う文字を表示させるとします。 プログラムを走らせてみたのですが、123と言う数字はテスト1のシートに記述されてしまいました。 ホントに初歩的な質問で申し訳ありませんが、テスト2に表示される方法を教えて頂けたらと思います。 それでは、よろしくお願い致します。

  • excelのマクロでrangeの選択がうまくいきません。

    excelのマクロでrangeの選択がうまくいきません。 以下のマクロをsheet2に書きました。testcopyは動きますが、testcopy2は動きません。なぜなのでしょうか。どうすればいいのでしょうか。それ以外のマクロの部分との関係から、cellsを使い、数字を使ってrangeの処理をしたいのです。よろしくお願いします。 Sub testcopy() Worksheets("sheet1").Range("B3:C10").Copy Worksheets("sheet2").Range("e5").Select ActiveSheet.Paste End Sub Sub testcopy2() Worksheets("sheet1").Range(Cells(3, 2), Cells(10, 3)).Copy Worksheets("sheet2").Range("e5").Select ActiveSheet.Paste End Sub

  • フォームでユーザが入力したシート名を選択したい

    初歩的な質問ですいません。教えてください! 「sheetnameinput」フォーム Private Sub NextButton2_Click() sheetname = sheetname.Text このようにフォームを作成し、ユーザにシート名を入力させて、マクロの中でそのシート名を指定(選択)したいと思っています。 続きとして Dim sn As Variant Set sn = sheetnameinput.sheetname Sheets("sn").Select と作成してみたのですが 「インデックスが有効範囲にありません(エラー9)」 のメッセージが出てしまいます。 確かにその名前のシートはエクセル内に存在しているのですが、なぜエラーとなるのでしょう?そもそも指定の仕方が間違っているのでしょうか? みなさん、教えてください。

このQ&Aのポイント
  • 印刷しようとしたらオフライン状態になっていてオンラインにならず印刷できない
  • Windows7で有線LAN接続のMFC-J6980CDWプリンターがオフライン状態になり、印刷できない問題が発生しています。
  • ひかり回線を使用している環境で、ブラザー製品のMFC-J6980CDWプリンターがオフライン状態になっており、印刷できません。
回答を見る

専門家に質問してみよう