プロが教えるわが家の防犯対策術!

エクセルで、ワークシート名をセルに表示する方法は書いてありますが、セルの値をワークシート名とするにはどうしたらいいでしょうか。

つまり、
「ワークシート名 → セル」 ではなく、

「セルの値 → ワークシート名」 ということです。


現状、会社が変わると決算期が変わるため、決算期を変更する度にワークシート名を変えていますが、変わった都度ワークシート名を手で変更するのは手間が掛っています。

具体的には、例えば、
3月決算の会社のファイルは、4月シート、5月シート・・・
12月決算の会社は、1月シート、2月シート・・・
のようにシート名を変えています。


そのため、セルに決算期を入力すると、自動で各ワークシート名も変更するようにしたいのですが、どうしたらいいでしょうか。

そういう関数はないようですし、マクロ・VBAの本等を見ても、よくわかりません。


宜しくお願い致します。

A 回答 (2件)

こんにちは!



Sheetは12Sheet存在しているとします。

>セルに決算期を入力すると・・・
具体的なセル番地が判らないので、Sheet1のA1セルに
決算月の数値のみを入力した場合のコードです。

Sheet1のSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Sheet1に戻りA1セルに月の数値を入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
Dim k As Long, myCnt As Long
With Target
If .Address = "$A$1" Then
If .Value <> "" And IsNumeric(.Value) And .Value <= 12 Then
'一旦シート名を適当なシート名に変更しておく(エラー回避のため)
For k = 1 To 12
Worksheets(k).Name = "Sheet" & k
Next k
For k = 1 To 12
myCnt = (.Value + k) Mod 12
If myCnt = 0 Then
myCnt = 12
End If
Worksheets(k).Name = myCnt & "月シート"
Next k
End If
End If
End With
End Sub 'この行まで

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

久しぶりのマクロで時間がかかったのですが、先週末に集中して取り組み、おかげさまで、頂いたプログラムからセル位置などを微修正してできました。

大変助かりました。ありがとうございます。

お礼日時:2014/10/11 09:03

検索したら1秒もかかりませんが。


http://www.relief.jp/itnote/archives/003382.php
    • good
    • 1
この回答へのお礼

遅くなってすいません。
質問の仕方が悪かったようで、検索でうまく見つからなかったのですが、大変助かりました。
ありがとうございます。

お礼日時:2014/10/11 08:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています