• 締切済み

Vbaで条件分岐、ワークシート名で振り分け

Vbaに不慣れです。 ワークシート名が「りんご」と「イチゴ」だと仮定して。「イチゴ」のワークシートが無い場合は「りんご」のワークシートがアクティブになる方法を教授頂ければ助かります。

みんなの回答

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

質問表現が不十分ではないか? 珍しいタイプの質問だからかな。 何もない(例えば、ブックを開いて、まだ何もしてない次のステップ)ときに、この作業(VBA)を行う、のではないだろう。 どういうタイミングでこの質問のケースが起こるのか? ・VBAのプログラムの中で、SelectやActivateした時、こういうことをやるのか。 ・人間の操作で、「イチゴ」シートを選択したとき  でも選択するはずがないですね。見えてないのだから。 ・その他  この「その他」だとしたら、文章で表せばどういうときか?  *エラーが発生するから、その時を捉えて、「りんご」シートの処理に  振り替わるようにする?  *プログラムの中で、Sheet2を指すステップに来た時かな。  Activesheets("Sheet2")のほかに、Activesheet.Nextという表現もあるしね。 Sub test02() ActiveSheet.Next.Select End Sub をSheet1を開いていて実行すると、下記Workbook_SheetActivateイベントのプログラムのおかげで、Sheet1に戻ったが。  ーー 小生が想像したのは ThisWorkbookのイベントで Private Sub Workbook_SheetActivate(ByVal Sh As Object) MsgBox "AAA" If Sh.Name = "Sheet2" Then MsgBox "BBB" Sheets("sheet1").Activate End If End Sub のようなものです。 しかし、実戦で使ったことはありません。 ーーー 標準モジュールに Sub test01() Worksheets("Sheet2").Select MsgBox "CCC" End Sub を入れて実行すると、このWorksheets("Sheet2").Selectの行を通るとき、上記のブックのイベントを通る(発生する)ようだ。 ーー 以下のVBAプログラムステップで実行される処理も、両シート兼用(どちらでも走る、プログラムも、またデータ内容もそれに適合している必要がある)になるように、プログラムを細心の注意を払って作っておかないといけませんわね(面倒)。

  • SI299792
  • ベストアンサー率48% (714/1476)
回答No.1

' Sub Macro1() '   On Error Resume Next   Sheets("りんご").Select   Sheets("イチゴ").Select End Sub

関連するQ&A

  • 他のワークシート名の取得方法 (VBAを使用せずに)

    VBAを用いずに、ワークシート関数のみでワークシート名を取得できないか探しています。 自分のシート名は、以下の出力結果の一部より取得することができました。 =CELL("filename") しかし、他のシート名を取得する方法が思いもつきません。 VBAを用いずにシート名を取得することはできないのでしょうか?

  • VBAのワークシート削除について

    VBAの初心者です。 VBAでワークシートを削除したいのですが、削除するワークシートがある場合とない場合があります。削除するワークシートがある場合は問題なく削除できますが、 ない場合、『インデックスが有効範囲にありません。』でエラーになってしまいます。(削除するワークシートが無いから当然ですが・・・) このような場合、どのように対処したら良いのでしょうか?

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3コピー元ワークシート3 という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • EXCEL VBA ワークシートのコピーについて

    seaclearsky8です。 一つのブックに何枚ものワークシートを追加して保存するVBAについて ご教授、よろしくお願いします。 コピー元  MASTER Book MASTER Workseets コピー先 Copy Book copy Worksheets コピー元にはワークシートがMASTERワークシートの一枚しかありません。 その一枚のワークシートに値をVBAで入れていき処理し コピー先のコピーBOOKにワークシートをコピーしていきたいです。 しかし、MASTERBOOKの処理が何通りかあり、 コピー元の一枚のワークシートに 処理別にデータを写し コピー先BOOKに          ワークシート名 ワークシート1 処理1ワークシート  ワークシート2 処理2ワークシート ワークシート3 処理3ワークシート という具合にワークシートを複数コピーしたいのですが 処理ごとにデータを代入し、コピー処理はできるのですが。 コピー先BOOK ワークシート3 処理3ワークシート だけしかコピーされてないBOOKが作成されます。 上書きされているのだと思われます。 対処法が調べましたが見つけられていません。 すいませんが対処法及び参考VBA等ご教授宜しくお願いいたします。

  • VBAワーク シート名前を付けて作成

    エクセルVBAにて 原紙とゆう名前のワークシートをコピー処理して 入力フォームにテキストボックス1と2があり コピーした原紙とゆうワークシート名から テキストボックス1と2に入力した項目が 合わさってワークシート名に変更する方法はあるのでしょうか? 例)テキストボックス1に 123   テキストボックス2に 456 コマンドボタン1をクリックすることによって ワークシート名が123456となるようにしたいのですが? 宜しくお願いいたします。

  • シート名と同じブックを開くVBA

    初めまして、以下のVBAについて質問させてください!「新しいフォルダ」に入っている「りんご」という名前のブックを開くことに成功したのですが、ここからさらに応用して、アクティブワークブックのシート名と同じ名前を含むブックが新しいフォルダにあれば、該当のブックを開く作業をしたいと思っています。シート名は「りんご」を含め「みかん」や「りんご」など色々あります。 VBA初心者のため以下の簡単なコードをなるべく崩したくないのですが、何か方法はありますでしょうか…?!ネットで色々検索しているのですが同じようなケースが見つからず困っています!どうかよろしくお願いします…!m(_ _)m Const お茶 As String = "C:\Users\PC○○\Desktop\新しいフォルダ\" Dim 三色団子 As String 三色団子 = Dir(お茶 & "りんご.xlsx") Workbooks.Open Filename:=お茶 & 三色団子

  • エクセルマクロでシート名を条件にする方法

    エクセルマクロで、 たとえば、「りんご」「ぶどう」「みかん」「いちご」「なし」という5つのシートがあって、 シート名が「りんご」「みかん」「いちご」のシートはシートの色を赤にして、その他のシートはシート色を青にする、といったことをしたいのですが、マクロではどのようにしたらよいのでしょうか。 実際にはシートが20シートあり、手処理で色を変更するという単純作業をやっているため、自動化したいと考えています。 マクロについては初心者のため、自分ではどのように書いたらよいかわかりませんので、どうかよろしくお願いいたします。

  • 新たなワークシートへのコピペVBA

    (1)Excelの一つのBOOKの中に複数のワークシートがあります。 (2)これらワークシートの中から、任意でいくつかのみを選びます。 (3)新たなワークシートを一つ作り、ここに、(2)で選んだワークシートを順番に横並びでコペピする。 上記をVBAで自動化させるには、どうしたらよろしいのですか?

  • エクセルで、ワークシート名をセルから参照する

    エクセルで、ワークシート名をセルに表示する方法は書いてありますが、セルの値をワークシート名とするにはどうしたらいいでしょうか。 つまり、 「ワークシート名 → セル」 ではなく、 「セルの値 → ワークシート名」 ということです。 現状、会社が変わると決算期が変わるため、決算期を変更する度にワークシート名を変えていますが、変わった都度ワークシート名を手で変更するのは手間が掛っています。 具体的には、例えば、 3月決算の会社のファイルは、4月シート、5月シート・・・ 12月決算の会社は、1月シート、2月シート・・・ のようにシート名を変えています。 そのため、セルに決算期を入力すると、自動で各ワークシート名も変更するようにしたいのですが、どうしたらいいでしょうか。 そういう関数はないようですし、マクロ・VBAの本等を見ても、よくわかりません。 宜しくお願い致します。

  • VBA:ワークシート名の変数格納

    ユーザーフォームを使用して、ワークシート名を表示しまして、選択したワークシート名を変数に収めて、Workshees(変数)みたいな感じで処理の対象にしていきたいと考えています。 何が適切な方法かわからない状態です。 もしよろしければコードも教えてください。よろしくお願いします。

専門家に質問してみよう