[[20060214101256]] 『シートの名前をA1のセルと同じにしたい』(みみこ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シートの名前をA1のセルと同じにしたい』(みみこ)
 いつもお世話になります。
30枚シートのブックの1シートずつに名前をつけなくてはなりません。
シートの名前はA1のセルと同じでいいのですが
A1のセルを書き換えた時に 自動でシートの名前も変わる方法はありますか?
よろしくご指導お願いします。


 下記が参考になるかもしれません。
(純丸)(o^-')b
[[20040930180016]] 『セルの内容をシートタグに反映させるには』(bun565) 

 すみません、便乗で質問です。
 30枚あるシートのすべてのシートモジュールにコードをいちいち貼り付けなければならない、ということでしょうか?
 それとも、一括で変更するには別の方法があるのでしょうか。(nyappi)


 30枚でしたね。例外のシートがなければ、下記コードを
 「ThisWorkbookモジュール」にコピーして下さい。
(純丸)(o^-')b
 
 Option Explicit

 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

    If Target.Address(0, 0) <> "A1" Then Exit Sub
    If Range("A1").Value = "" Then Exit Sub

    On Error Resume Next
    ActiveSheet.Name = Range("A1").Value

    If Err.Number <> 0 Then
        Err.Clear

        Application.EnableEvents = False
            Range("A1").ClearContents
        Application.EnableEvents = True

        MsgBox "シート名が不正です。", vbExclamation, "エラー"
    End If

    On Error GoTo 0
    Range("A1").Activate
 End Sub

 純丸さん有難うございます。ワークブックモジュールなんですね。
 純丸さんのコードのおかげで、Me.というのがActiveSheetをさすことがわかりました。
 Me.をヘルプで検索してもヒットしなかったのでなんだろうと思っていました。(nyappi)


 はっきり言って私も Me についてはよくわかりません。
 ヘルプには下記の通り記述されています。
(純丸)(o^-')b

 Me キーワード

 キーワード Me は、暗黙のうちに宣言された変数と同様に動作します。
 キーワード Me はクラス モジュール内のすべてのプロシージャ 
 (Sub プロシージャまたは Function プロシージャ) で使用できます。
 キーワード Me は、複数のインスタンスを作成できるクラスを使用するときに、
 現在コードが実行されているクラスを指定するために使われます。
 特に、動作中のインスタンスに関する情報を他のモジュール内のプロシージャに
 渡すときなどは、キーワード Me が役立ちます。たとえば、コード モジュール内に
 次のようなプロシージャがある場合が考えられます。

 Sub ChangeFormColor(FormName As Form)
    FormName.BackColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
 End Sub

 次のステートメントを使用すると、プロシージャを呼び出して、
 現在のフォーム (Form クラスの現在実行中のインスタンス) を引数として
 渡すことができます。

 changeFormColor Me

 Me キーワードは、単純にそのコードが記述されているオブジェクト
 そのものを指します。
 以下のマクロを
 Sheet Module
 ThisWorkbook Module
 Form Module
 標準 Module
 で実行してみてください。

 Standard Moduleだけはエラーになるはずです。

 sub test
    msgbox me.name
 end sub

 (seiya)


 To.純丸さん
 私のパソコンでは、Meは「あいまいです」といわれて教えてもらえませんでした...
 ヘルプ内容をご提示いただき有難うございました。

 To.seiyaさん
 書いてある本体(私よ!)ということですね、なるほど納得です。
 ありがとうございました。(nyappi)


 同上です。「そのコードが記述されているオブジェクト」と言われると
 わかりやすいですね。ありがとうございました。
(純丸)(o^-')b

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.