• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA 特定のシートが選択されていたら、セル入力)

VBAを使用して特定のシートが選択された場合にセルに入力する方法

このQ&Aのポイント
  • Excel365のVBAを使用して、特定のシートが選択されている場合にセルに入力する方法を説明します。
  • 「あ」というシートが選択されている場合は、「あ」シートの「A1」セルに「a」と入力します。同様に、「い」というシートが選択されている場合は、「い」シートの「A1」セルに「i」と入力します。
  • それ以外のシートが選択されている場合には何もしないようにします。

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

  • ベストアンサー
noname#250245
noname#250245
回答No.1

「Sheets("あ").Activate」で返してくるTrueを条件にしようとしてるんでしょうけど、Trueが返ってくるということはSheets("あ")をActivateすることに成功しているということなので、その時点で「あ」シートが選択されます。 試しにブレークポイントを設定して順番に確かめてみてください。 他のシートを選択していても「If ActiveSheet.Name = "あ" Then」のところで「あ」シートが選択されるはずです。 選択されたシートの名前で判断させたいなら、「If ActiveSheet.Name = "あ" Then」とした方が間違いがないですよ。 select文使って Select Case ActiveSheet.Name Case "あ" Range("A1") = "a" Case "い" Range("A1") = "i" End Select みたいな感じにしても良いですし。

noname#248169
質問者

お礼

出来ました。 ありがとうございました。 仰る通り、ブレイクポイントしたら、最初の指定の仕方が間違っていました。

その他の回答 (2)

  • SI299792
  • ベストアンサー率47% (772/1616)
回答No.3

' Sub Macro1() '   If ActiveSheet.Name = "あ" Then     [A1] = "a"   ElseIf ActiveSheet.Name = "い" Then     [A1] = "i"   End If End Sub

noname#248169
質問者

お礼

ctiveSheet.Name なんですね。 アクティブにしていたのが悪いのだとわかりました。 ありがとうございました。

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

VBAのコードのことが頭いっぱいなのでしょうが、こういうところで質問するときは、 こういうことが必要になる「状況」というか、「事情」を、文章で記述し、 回答者に答え(VBA)コードをもらうのが、良いと思う。初心者の場合なら、発想やロジックそのものがべストやベッターではないと思える場合が多いから。 ーー  質問のケースが必要な場面が思いつかない。むしろシート選択の「イベント」との 関連で、こういうニーズが起こるように思うが、そのことは触れてない。 Private Sub Worksheet_Activate() がないので。 ーー 特殊なケース。シートを3つ以上選択しておいて Sub 選択中のシート枚数と名前を取得する() MsgBox _ ActiveWindow.SelectedSheets.Count MsgBox _ ActiveWindow.SelectedSheets(2).Name '2番目 MsgBox _ ActiveWindow.SelectedSheets(3).Name '3番目   ’この後シート名で処理を分岐記述 End Sub こういうWundow系のVBAも使うべき場合がある。

noname#248169
質問者

お礼

確かに、マクロが出来ず、混乱状態でした。 出来るようになって安心して自分の質問を読み返しました。 ありがとうございました。