• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2007で、マクロ実行時にSheetの確認をしたいのですが、)

Excel2007でマクロ実行時にSheetの確認方法

このQ&Aのポイント
  • Excel2007でマクロ実行時にSheetの確認方法を教えてください。
  • 月別のシートを作成し、マクロで処理をしたい場合、実行前にSheetの確認を行いたいです。
  • 処理月を指定し、マクロが正しいSheet上で実行されるようにしたいです。

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

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

例えば、インプットボックスで入力した数字がシート名に含まれるかどうかで、処理したいシートかどうか判断するのであれば、以下を参考にして下さい。 Sub データ並べ替え() Dim tuki As Integer '処理月 tuki = InputBox("処理月を半角英数で入力して下さい") If ActiveSheet.Name Like "*" & tuki & "*" Then Range("A2").Value = tuki Else MsgBox "シートが違います", vbCritical Exit Sub End If End Sub

kyoutanuki
質問者

お礼

早速にありがとうございました。  すごい すごい !! 下記のように、変更したところ、思っていたとおりに動きました。 当方まだまだ初心者のため、ほとんど解っていないのですが、 いろいろ勉強をしていきたいと思っております。 変更後 If ActiveSheet.Name Like tuki & "月成績" Then

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

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

思い当たるエラー処理をいつくか施しました。 この中から、必要な部分だけを抜き出してもよいです。 シートは、1月、2月、3月・・となっていると仮定しています。 Sub Test1()  Dim tuki As Variant '処理月  Dim msgRet As VbMsgBoxResult  Dim ret As Variant Start:  Do   tuki = Application.InputBox("処理月を英数で入力して下さい", "入力", Type:=2)   If VarType(tuki) = vbBoolean Then Exit Sub 'キャンセルボタン   tuki = StrConv(tuki, vbNarrow) '半角に変換   If Not tuki & "月" Like "#*月" Then Exit Do '月をいれた場合   If IsNumeric(tuki) = True Then tuki = tuki & "月": Exit Do '数字の場合  Loop  On Error Resume Next  ret = Worksheets(tuki).Range("A2").Value  If Err.Number > 0 Then   MsgBox tuki & "のシート名が違います。", vbExclamation   GoTo Start  End If  On Error GoTo 0  msgRet = MsgBox(tuki & "でよろしいですか?", vbQuestion + vbYesNoCancel)  If msgRet = vbNo Then   GoTo Start   ElseIf msgRet = vbCancel Then   Exit Sub  End If  With Worksheets(tuki)  '実行   .Select   .Range("A2").Value = tuki  End With End Sub

kyoutanuki
質問者

お礼

早速にありがとうございました。 非常に高度で、すばらしいプログラムとは思いますが、 当方ごく初心者のため、理解するまでには少し時間がかかりますので、 ご了承下さい。 これから勉強をして理解を深めたいと思います。 誠に申し訳ありませんが、理解の後改めてお礼を言わせて頂きます。 ありがとうございました。

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

関連するQ&A