パソコン困りごと相談
◇-エクセルのシート名-ポコママ(10/30-11:08)No.4193
 ┗Re:エクセルのシート名-sumi(10/30-12:12)No.4196
  ┗Re:エクセルのシート名-ポコママ(10/30-13:14)No.4204
   ┣Re:エクセルのシート名-無人(10/30-17:38)No.4217
   ┃┗Re:エクセルのシート名-ポコママ(10/31-11:17)No.4305
   ┃ ┗Re:エクセルのシート名-無人(10/31-11:33)No.4307
   ┃  ┗Re:わかりました・・・が・・・。-ポコママ(10/31-14:16)No.4321
   ┃   ┗Re:わかりました・・・が・・・。-無人(10/31-14:34)No.4325
   ┃    ┗Re:わかりました・・・が・・・。-ポコママ(10/31-16:21)No.4334
   ┃     ┗Re:わかりました・・・が・・・。-無人(10/31-16:42)No.4336
   ┃      ┗Re:わかりました・・・が・・・。-ポコママ(11/1-08:42)No.4402
   ┃       ┗Re:わかりました・・・が・・・。-無人(11/1-10:38)No.4406
   ┃        ┗Re:できました!!ありがとうございました-ポコママ(11/1-11:21)No.4408
   ┃         ┣Re:コンパイラー・・・。-ポコママ(11/1-11:53)No.4410
   ┃         ┗Re:できました!!ありがとうございました-無人(11/1-12:02)No.4411
   ┃          ┗Re:なるほどですね。たびたびすみませんが。-ポコママ(11/1-13:39)No.4418
   ┃           ┗Re:たびたびすみませんが。-無人(11/1-13:43)No.4419
   ┃            ┗Re:重ね重ねありがとうございました。-ポコママ(11/1-13:55)No.4420
   ┗Re:エクセルのシート名-o2ka(10/31-00:35)No.4251
    ┗Re:エクセルのシート名-ポコママ(10/31-11:26)No.4306
     ┗Re:エクセルのシート名-o2ka(10/31-23:04)No.4370
      ┗Re:エクセルのシート名-ポコママ(11/1-09:01)No.4403
       ┗Re:エクセルのシート名-o2ka(11/1-23:33)No.4459

▲このページのトップに戻る
4193エクセルのシート名ポコママ 10/30-11:08

OS名:WindowsNT
パソコン名:NEC PC98NX Mate
ソフト名:Microsoft Excel2000
エクセルのシート名と、その表の表題(文字列)を連動させたいのです。
えっと、文字列を入力したら、タブ名がそれと同じになる、もしくは
タブ名を付けたら、そのセルにその名前と同じ文字列が自動的に
表示される、どちらでもいいのですが、そういう方法があれば教えて下さい。

▲このページのトップに戻る
4196Re:エクセルのシート名sumi URL10/30-12:12
記事番号4193へのコメント
ポコママさんは No.4193「エクセルのシート名」で書きました。
>OS名:WindowsNT
>パソコン名:NEC PC98NX Mate
>ソフト名:Microsoft Excel2000
>エクセルのシート名と、その表の表題(文字列)を連動させたいのです。
>えっと、文字列を入力したら、タブ名がそれと同じになる、もしくは
>タブ名を付けたら、そのセルにその名前と同じ文字列が自動的に
>表示される、どちらでもいいのですが、そういう方法があれば教えて下さい。
>
印刷の中のヘッダーではダメですか。

▲このページのトップに戻る
4204Re:エクセルのシート名ポコママ 10/30-13:14
記事番号4196へのコメント
sumiさんは No.4196「Re:エクセルのシート名」で書きました。
>ポコママさんは No.4193「エクセルのシート名」で書きました。
>>OS名:WindowsNT
>>パソコン名:NEC PC98NX Mate
>>ソフト名:Microsoft Excel2000
>>エクセルのシート名と、その表の表題(文字列)を連動させたいのです。
>>えっと、文字列を入力したら、タブ名がそれと同じになる、もしくは
>>タブ名を付けたら、そのセルにその名前と同じ文字列が自動的に
>>表示される、どちらでもいいのですが、そういう方法があれば教えて下さい。
>>
>印刷の中のヘッダーではダメですか。
?ヘッダをどうするのでしょうか?

▲このページのトップに戻る
4217Re:エクセルのシート名無人 10/30-17:38
記事番号4204へのコメント
ポコママさんは No.4204「Re:エクセルのシート名」で書きました。
>sumiさんは No.4196「Re:エクセルのシート名」で書きました。
>>ポコママさんは No.4193「エクセルのシート名」で書きました。
>>>OS名:WindowsNT
>>>パソコン名:NEC PC98NX Mate
>>>ソフト名:Microsoft Excel2000
>>>エクセルのシート名と、その表の表題(文字列)を連動させたいのです。
>>>えっと、文字列を入力したら、タブ名がそれと同じになる、もしくは
>>>タブ名を付けたら、そのセルにその名前と同じ文字列が自動的に
>>>表示される、どちらでもいいのですが、そういう方法があれば教えて下さい。

セル入力→シート名変更は可能だが、反対はむりか...

[例]
Sheet1.A1セルの文字をシート名にする。

シートタブで右クリックし、開いたコードエディタに以下を貼り付ける。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 1 Then
If Sheet1.Range("A1") <> "" Then Sheet1.Name = Sheet1.Range("A1")
End If
End Sub

▲このページのトップに戻る
4305Re:エクセルのシート名ポコママ 10/31-11:17
記事番号4217へのコメント
>[例]
>Sheet1.A1セルの文字をシート名にする。
>
>シートタブで右クリックし、開いたコードエディタに以下を貼り付ける。
>
>Private Sub Worksheet_Change(ByVal Target As Range)
> If Target.Row = 1 And Target.Column = 1 Then
> If Sheet1.Range("A1") <> "" Then Sheet1.Name = Sheet1.Range("A1")
> End If
>End Sub

やってみたんですが、変わらないのです。どこがまちがっているのかな。
開いたコードエディタの右上、プロシージャは「Change」になっています。

▲このページのトップに戻る
4307Re:エクセルのシート名無人 10/31-11:33
記事番号4305へのコメント
>>シートタブで右クリックし、開いたコードエディタに以下を貼り付ける。

シートのタブの上で右クリックし、コードの表示を選択する。
~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
コードエディタが、

[ General ▼ ]  [ Declarations ▼ ]

Option Explicit

'(-- ここに書き込む --)

▲このページのトップに戻る
4321Re:わかりました・・・が・・・。ポコママ 10/31-14:16
記事番号4307へのコメント
無人さんは No.4307「Re:エクセルのシート名」で書きました。
>>>シートタブで右クリックし、開いたコードエディタに以下を貼り付ける。
>
>シートのタブの上で右クリックし、コードの表示を選択する。
>~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
>コードエディタが、
>
>[ General ▼ ]  [ Declarations ▼ ]
>
>Option Explicit
>
>'(-- ここに書き込む --)

ありがとうございます。何回も質問してすいません。とんちんかんなので。
・・・で、これって、このシートをたくさんコピーして増やしたいんですが、
Sheet1にしか適用しませんか。
Sheet1をコピーして他のシートにコピーしてそのタブ右クリックエディタで
数値を変えてみるだけでは、変わらないので。
変えるべき所が違うのかな。

▲このページのトップに戻る
4325Re:わかりました・・・が・・・。無人 10/31-14:34
記事番号4321へのコメント
他のシートの名前を変更する場合もここに書く。

Private Sub Worksheet_Change(ByVal Target As Range)

'Target.Row は行数を指定する。
'Target.Column は列数を指定する。
'つまりここでは、1列目の1行目(A1)に書き込まれたとき。

If Target.Row = 1 And Target.Column = 1 Then

'セルが空白ならシート名も空白になり、エラーがでるのでまず、チェックしている。
'シート1の名前をシート1のA1セルの値を書き込んでいる。

If Sheet1.Range("A1") <> "" Then Sheet1.Name = Sheet1.Range("A1")
End If
End Sub

どうしても分からなければ変更したいシート名(Sheet1とか)と、
セルをもう一回書き込んで。

▲このページのトップに戻る
4334Re:わかりました・・・が・・・。ポコママ 10/31-16:21
記事番号4325へのコメント
sheet1だけはできましたが、コピーしたシートに関しては
どうしてもわかりません。せっかくご指導くださったのに
申し訳ありません。

▲このページのトップに戻る
4336Re:わかりました・・・が・・・。無人 10/31-16:42
記事番号4334へのコメント
シートはいつコピーするのか?

ってゆうか、何がしたいのか全く分からない。
もっと、具体的に(作成するブックの内容は必要ないが)どのシート
の名前をどのセルでいつ変えたいのかっていうのを書かない限り回答
できん。以降、その記述がなければ返信なし。

▲このページのトップに戻る
4402Re:わかりました・・・が・・・。ポコママ 11/1-08:42
記事番号4336へのコメント
無人さんは No.4336「Re:わかりました・・・が・・・。」で書きました。
>シートはいつコピーするのか?
>
>ってゆうか、何がしたいのか全く分からない。
>もっと、具体的に(作成するブックの内容は必要ないが)どのシート
>の名前をどのセルでいつ変えたいのかっていうのを書かない限り回答
>できん。以降、その記述がなければ返信なし。

すいません。Sheet1のA1セルに入力した文字列をSheet1の
タブ名に、Sheet2のA1セルの文字列をSheet2のタブ名に
Sheet3のA1セルの文字列をSheet3のタブ名に・・・とした
かったわけです。

▲このページのトップに戻る
4406Re:わかりました・・・が・・・。無人 11/1-10:38
記事番号4402へのコメント
OK。

じゃあ前に書いたコードはすべて消して、VisualBasicEditor(以下VBE)を表示。
VBEの左上のプロジェクトウィンドゥに
Sheet1(Sheet1)
Sheet2(Sheet2)
  :
  :
ThisWorkBook
と書いてある、ThisWorkBookの上で右クリック→コードの表示を選択。
以下のコードを記述。

Option Explicit '←これは、すでに記述されている

Function CheckName(AName As String) As Boolean
Dim i As Long
CheckName = True
For i = 1 To ThisWorkbook.Sheets.Count
If AName = Sheets(i).Name Then
CheckName = False
Exit Function
End If
Next
End Function

Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Source As Range)
If Source.Row = 1 And Source.Column = 1 Then
If Sh.Range("A1") <> "" And CheckName(Sh.Range("A1")) Then
Sh.Name = Sh.Range("A1")
End If
End Sub

これは、後から挿入またはコピーしたシートにも適用される。
また、名無しや同名のエラーにも対処してる。

以上。

▲このページのトップに戻る
4408Re:できました!!ありがとうございましたポコママ 11/1-11:21
記事番号4406へのコメント
無人さんは No.4406「Re:わかりました・・・が・・・。」で書きました。

>Private Sub Workbook_SheetChange(ByVal Sh As Object, _
> ByVal Source As Range)
> If Source.Row = 1 And Source.Column = 1 Then
> If Sh.Range("A1") <> "" And CheckName(Sh.Range("A1")) Then
>Sh.Name = Sh.Range("A1")
> End If
>End Sub

ほんとうにありがとうございました。つっこむつもりはないのですが、
End Ifがひとつ足りないとコンパイラーが教えてくれたので、
End Ifを追加しました。
とんちんかんな私に、最後までつきあってくださってありがとうございました。

▲このページのトップに戻る
4410Re:コンパイラー・・・。ポコママ 11/1-11:53
記事番号4408へのコメント
>ほんとうにありがとうございました。つっこむつもりはないのですが、
>End Ifがひとつ足りないとコンパイラーが教えてくれたので、
>End Ifを追加しました。
>とんちんかんな私に、最後までつきあってくださってありがとうございました。

つっこまれないうちに・・・。「コンパイラー」じゃなくて「デバッガ」ですね。

▲このページのトップに戻る
4411Re:できました!!ありがとうございました無人 11/1-12:02
記事番号4408へのコメント
たぶんEndIfは
>> If Sh.Range("A1") <> "" And CheckName(Sh.Range("A1")) Then
>>Sh.Name = Sh.Range("A1")
のところが2行になってしまったためで、コード上では1行で書いたからだな。

▲このページのトップに戻る
4418Re:なるほどですね。たびたびすみませんが。ポコママ 11/1-13:39
記事番号4411へのコメント
ところで、「A1セルの文字列」じゃなくて、「D2セルの文字列」にしたいときは、
コード中の"A1"を"D2"にするだけでいいんですか?

▲このページのトップに戻る
4419Re:たびたびすみませんが。無人 11/1-13:43
記事番号4418へのコメント
ポコママさんは No.4418「Re:なるほどですね。たびたびすみませんが。」で書きました。
>ところで、「A1セルの文字列」じゃなくて、「D2セルの文字列」にしたいときは、
>コード中の"A1"を"D2"にするだけでいいんですか?
だけじゃなく、
If Source.Row = 1 And Source.Column = 1 Then
Row(行番号),Column(列番号)だから
D2なら
If Source.Row = 2 And Source.Column = 4 Then
だな。

▲このページのトップに戻る
4420Re:重ね重ねありがとうございました。ポコママ 11/1-13:55
記事番号4419へのコメント
ありがとうございました。ほんとにたびたびすいませんでした。
レスが早い!と感心しております。

▲このページのトップに戻る
4251Re:エクセルのシート名o2ka 10/31-00:35
記事番号4204へのコメント
>?ヘッダをどうするのでしょうか?

「ヘッダとフッタの編集」モードにすると、ボタンがいくつか表示されたツールバーが
表示されますよね。

そこに、「シート名の挿入」ボタンが有ったと思いますが・・・。
 ↑いつも通り、Excelをインストールしていないので記憶からレス

▲このページのトップに戻る
4306Re:エクセルのシート名ポコママ 10/31-11:26
記事番号4251へのコメント
o2kaさんは No.4251「Re:エクセルのシート名」で書きました。
>>?ヘッダをどうするのでしょうか?
>
>「ヘッダとフッタの編集」モードにすると、ボタンがいくつか表示されたツールバーが
>表示されますよね。
>
>そこに、「シート名の挿入」ボタンが有ったと思いますが・・・。
> ↑いつも通り、Excelをインストールしていないので記憶からレス
>
いつも、手元にExcelないのに記憶だけですごいと思います。
そのボタン、あります。さすがですね。
ただですね、あるセル範囲をヘッダにするように設定しているので、
ぜひ、「セル入力文字列=タブ名」の方法をと思っていたのですが、
ヘッダの編集で、ヘッダを作った方が簡単ですね。
でもエクセルの場合、ヘッダって印刷や印刷プレビューのときしか、
その文字列が見れないからなあと・・・。

▲このページのトップに戻る
4370Re:エクセルのシート名o2ka 10/31-23:04
記事番号4306へのコメント
>いつも、手元にExcelないのに記憶だけですごいと思います。

手元には沢山ありますよ(笑)。
インストールしていないだけで・・・。
 ↑マシンの環境が確定してからでないと、怖くて入れられない。
  officeをインストールするかどうかはWinXPのデキ次第になります。

>でもエクセルの場合、ヘッダって印刷や印刷プレビューのときしか、
>その文字列が見れないからなあと・・・。

ですね。
Wordの場合は、印刷イメージで編集していればヘッダも見られますが
Excelは印刷イメージでの表示が無いですからね・・・。

もうひとつ、Excelでの不満は「横倍角」が無いこと・・・。

▲このページのトップに戻る
4403Re:エクセルのシート名ポコママ 11/1-09:01
記事番号4370へのコメント
o2kaさんは No.4370「Re:エクセルのシート名」で書きました。
>手元には沢山ありますよ(笑)。
>インストールしていないだけで・・・。
> ↑マシンの環境が確定してからでないと、怖くて入れられない。
>  officeをインストールするかどうかはWinXPのデキ次第になります。

なるほどですね。(笑)
>
>もうひとつ、Excelでの不満は「横倍角」が無いこと・・・。

「縦倍角」はありましたっけ?

▲このページのトップに戻る
4459Re:エクセルのシート名o2ka 11/1-23:33
記事番号4403へのコメント
>>もうひとつ、Excelでの不満は「横倍角」が無いこと・・・。
>
>「縦倍角」はありましたっけ?

それはWordにすら無いですね(笑)。
横倍角で0.5倍すれば、縦倍角と同じ事ですから。