ここから本文です

エクセルのVBAで… 普通にシートをアクティブにするなら sheets("sheet1").Acti...

mau********さん

2018/8/2408:10:59

エクセルのVBAで…

普通にシートをアクティブにするなら
sheets("sheet1").Activate
だと思いますが、

シートの名前が◯月で
◯の数字が毎回変化する場合の
シートをアクティ

ブにするには?

言いかえるならば
シート名に特定の文字 "月" を含む
シートをアクティブにするにはどのようにすれば良いのでしょうか?

閲覧数:
92
回答数:
5
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

hel********さん

2018/8/2408:49:42

シート名が「1月」「2月」・・・となっていて、数値を入れるとその月のシートを選択するということで。
※この場合シート名の1月の「1」などの数値が半角、全角まで認識しますので気を付けてください。

Sub Sample()
Dim Tuki As String, sh As Worksheet
Tuki = InputBox("何月ですか?")
For Each sh In Worksheets
If sh.Name = Tuki & "月" Then
sh.Select
Exit Sub
End If
Next sh
End Sub

質問した人からのコメント

2018/8/27 20:44:57

シートが複数になる可能性もあるかと思い、この方法がベストかなと思いましたのでベストアンサーに選ばせていただきます

ベストアンサー以外の回答

1〜4件/4件中

並び替え:回答日時の
新しい順
|古い順

set********さん

2018/8/2422:28:24

シート名に "月" の文字を含むシートをアクティブにする、

ということで、下記の構文でどうでしょうか?


Sub Test1()
Dim sh As Worksheet
For Each sh In Worksheets
If InStr(sh.Name, "月") > 0 Then
sh.Activate
End If
Next sh
End Sub

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

dio********さん

2018/8/2420:00:08

Sheets(i & "月").Activate

このような書き方ができますが、ご質問の答えになっているでしょうか。
(毎回変化する◯の数字をあらかじめiに入れてください。)

yus********さん

2018/8/2410:43:03

例えば、8月は8月のシート、9月は9月のシートで作業というのであれば、本日の日付から月を取り出しシート名にすればよいのでは?

Dim name As String
name = Format(Date, "m") & "月"
sheets(name).Activate

jai********さん

2018/8/2408:34:00

Sub sample()
Dim Sname As String
Sname = Format(ThisWorkbook.Worksheets("Sheet1").Range("A1").Value, "##??")
ThisWorkbook.Worksheets(Sname).Activate
End Sub

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる