[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シートの名前を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.