• ベストアンサー

エクセルVBA アクティブのシートによって処理を変える方法

エクセルの勉強をしていて行き詰まってしまったので相談させて下さい。 現在アクティブになっているシートによって処理を変えるVBAを作っています。 IFを使うことになるかと思うのですが”シート1がアクティブの場合”という 条件をうまく付けることが出来ません。 If "アクティブシートがsheet1" Then <<指定の処理>> ElseIf"アクティブシートがsheet2"Then <<指定の処理>> Else EndIf うまく説明できず申し訳ありませんが条件式の" "の中に入るコードを教えて下さい。 不足部分については補足させて頂きますのでよろしくお願い致します。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

「sheet1」というのがシート名なら If ActiveSheet.Name = "sheet1" Then みたいな感じ。

rate_8240
質問者

お礼

自分で考えたのは".Name"の部分が足りなかったようです。 ご報告が遅くなってしまいましたが上手くできました。 ありがとうございます。

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

その他の回答 (2)

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

VBAではシートの区別はどういう方法があるか勉強が必要。 (1)シートの名前 (2)ActiveSheet (3)シートのIndex番号 (4)Next、Previous (5)その他 (3)はシートタブの位置を動かすと変わるので、データ内容で考えるときは、使いにくい。 残るはシートの名前。 ーーーーー 例 シートタブをクリックするとそのシートによって処理を変える例。 ThisWorkbookのWorkbook_SheetActivateイベント利用。 Private Sub Workbook_SheetActivate(ByVal Sh As Object) Select Case Sh.Name Case "Sheet1" MsgBox "Sheet1" Sh.Cells(10, "A") = 1 Case "Sheet2" MsgBox "Sheet2" Sh.Cells(10, "A") = 2 Case Else MsgBox "その他" End Select End Sub

rate_8240
質問者

お礼

分厚い本とネットで勉強していますが調べが足りなかったようです。 詳しく説明していただいてありがとうございます。 ただ、申し訳ありませんがポイントは答えて頂いた順にさせて下さい。 参考になる回答ばかりで甲乙付け難いので。

すると、全ての回答が全文表示されます。
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

select case を使用する方法です Select Case ActiveSheet.Name 'シート名が Case "sheet1" 'sheet1の時 '<<指定の処理>> Case "sheet2" 'sheet2の時 '<<指定の処理>> Else '指定されたもの以外のとき '<<指定の処理>> End Select 参考まで

rate_8240
質問者

お礼

ありがとうございます。 Caseを使う方法もあるのですね。

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

関連するQ&A