ヘルプで調べてみたのですが、わからなかったので質問します。
セルにシートの名前を式で挿入したいのですが、そのような方法はあるのでしょうか?

例えば、シート名が「従業員ID」だった時に、あるセルで、

=このシートのシート名

というような式を挿入すれば、自動的に「従業員ID」というシート名が挿入されるような式のことです。

いまいち質問の仕方が不明瞭で申し訳ありません。
私が使っているのは、
OS:Win2000、エクセル2000です。

A 回答 (3件)

参考に投稿します。



Cell("filename",$A$1)とすると、ドライブやフォルダも表示されるんですよね。1回保存しないといけないし。

Cell(・・・)はいろいろ気を使うことがあるので、下記の様にしていることもあります。

標準モジュールに下記を貼り付けます。
Public Function ThisSheetName()
ThisSheetName = ActiveSheet.Name
End Function

使い方は、シートで =ThisSheetName() とします。
ユーザー定義関数では、Application.Volatile で自動再計算関数にしますが、これは意識的にそうしていません。
そのため、シート名を変更したら再計算させる必要があります。
    • good
    • 0

=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)



これでいけると思います。
    • good
    • 0

こんにちは



 以下のページがご参考になるのでは?

【エクセル技道場】-シート-ワークシート名を表示する関数
http://www2.odn.ne.jp/excel/waza/sheet.html#SEC5

参考URL:http://www2.odn.ne.jp/excel/waza/sheet.html#SEC5
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

Qミッドウエー海戦、最年少戦死者は15歳の少年4名だそうですが、

ミッドウエー海戦、最年少戦死者は15歳の少年4名だそうですが、
乗艦名(できれば4名の名前も)を教えてください。
よろしくお願いします。

城山三郎氏の対談集『気骨について』(新潮社)で知りました。

Aベストアンサー

『記録 ミッドウェー海戦』澤地久枝著、文藝春秋、昭和61年6月発行によれば、赤城1名、蒼龍2名、三隈1名となっています。名前などは図書館にはあるでしょうから自分で調べてください。以上

QExcel2000 VBAで新規シート名を他のシート名と重ならないようにつけるには?

始めまして。早速ですが、今頭を抱え込んでいる私の悩みを聞いて下さい。

シート名を追加するプログラムで、「シートを追加」というボタンを押すと、
Inputboxを表示し、そこに任意の番号("見積書1"や"請求書1"の数字部分)を入力して、その番号をシート名として取得すると同時に、シートを追加するようにしたいのです。

その過程で、新しいシートの名前をつける際に、同じブック内に既に存在する複数
のシート名と照らし合わせて、もし、既存の番号と同じ番号をInputBoxに入れたときには、「他の番号を入力してください」と再度InputBoxを表示させたいのです。
そして、シート名がブック内に同じものがない場合にのみ、シートを追加するというものです。

VBAを使うより、手動ですれば?という考えももちろん解決方法の一つかとは思いますが、何分Excelを始めて使う年老いた父のために、少しでも簡単に操作できるようにという思いから質問させて頂いております。

どうぞよろしくお願いいたします。

Aベストアンサー

シートの番号のみを入力します。
そのために、番号を除いた部分を登録しておきます。下では wsPattName = "見積書" です。

また、番号入力すると、1→2→4と入力するかもしれません。
番号入力しないで、既存番号+1を自動で付けるのが一番『親切』? SheetNameChange2 でそれを行っています。


標準モジュールに貼り付けます。

Sub SheetNameChange()
  Dim inputCheck As Boolean '入力は正しいか
  Dim wsNo As Variant 'ワークシート番号
  Dim ws As Worksheet 'ワークシート
  Dim wsPattName As String 'ワークシートに共通な名前部分
  Dim myMsg As String 'メッセージ

  wsPattName = "見積書" '*** 事前に登録しておきます! ***
  Const myMsg0 = "ワークシートの番号を入力して下さい": myMsg = myMsg0
  Do
    wsNo = InputBox(myMsg)
    If wsNo = "" Then Exit Sub 'キャンセル
    '重複をチェック
    inputCheck = True
    For Each ws In Worksheets
      If ws.Name = wsPattName & wsNo Then
        inputCheck = False
      End If
    Next
    myMsg = "番号が重複しました。" & vbCrLf & myMsg0
  Loop Until inputCheck = True

  'シートを追加
  Dim actSht As String '今アクティブなシート名
  actSht = ActiveSheet.Name
  Worksheets.Add.Move AFTER:=Worksheets(Worksheets.Count)
  ActiveSheet.Name = wsPattName & wsNo
  Worksheets(actSht).Activate
End Sub

'<参考>
Sub SheetNameChange2()
  Dim wsNo As Variant 'ワークシート番号
  Dim wsNoMax As Integer '最大のワークシート番号
  Dim ws As Worksheet 'ワークシート
  Dim wsPattName As String 'ワークシートに共通な名前部分

  wsPattName = "見積書" '*** 事前に登録しておきます! ***
  For Each ws In Worksheets
    If IsNumeric(Application.Substitute(ws.Name, wsPattName, "")) Then
      wsNo = Val(Application.Substitute(ws.Name, wsPattName, ""))
    End If
    If wsNoMax < wsNo Then wsNoMax = wsNo
  Next

  'シートを追加
  Dim actSht As String '今アクティブなシート名
  actSht = ActiveSheet.Name
  Worksheets.Add.Move AFTER:=Worksheets(Worksheets.Count)
  ActiveSheet.Name = wsPattName & (wsNoMax + 1)
  Worksheets(actSht).Activate
End Sub

シートの番号のみを入力します。
そのために、番号を除いた部分を登録しておきます。下では wsPattName = "見積書" です。

また、番号入力すると、1→2→4と入力するかもしれません。
番号入力しないで、既存番号+1を自動で付けるのが一番『親切』? SheetNameChange2 でそれを行っています。


標準モジュールに貼り付けます。

Sub SheetNameChange()
  Dim inputCheck As Boolean '入力は正しいか
  Dim wsNo As Variant 'ワークシート番号
  Dim ws As Worksheet 'ワーク...続きを読む

Q復興支援マッチ 日本~台湾戦 BGM曲名

いま放送中の台湾戦で19:01ごろにかかった曲名を教えてください。
相方は、かなり古い曲だと申しています。
聞いた事があるけれど、曲名がどうしても思い出せないそうです。
いい感じの、ロックでした。よろしくお願いします。

Aベストアンサー

19:01は観てなかったのですが、今流れていたのはジャーニーのセパレート・ウェイズ です。

Qエクセルでシート名をセルに入力しておき、そのセルの内容を使ってシートを参照したいのですが

タイトルのとおりです。

シートは1~31日で1ヶ月分作りました。
まとめ表は、32枚目のシートに作ります。

32枚目のシートのセルに
SUM('1日'!A1:A5)
SUM('2日'!A1:A5)



と入力するよりも、1日、2日というシート名の
部分を32枚目のシートのA1~A31までに見出し?としてセルに文字を入力しておき、
それを関数に利用したいのですが、どのようにしたらいいのでしょうか?

Aベストアンサー

INDIRECT関数を使います。

A1セルに”1日目”、
A2セルに”2日目”、
・・・・・・
と入力されていて、
B1セルに1日目のA1:A5の合計を出すとすると、B1せるに

=SUM(INDIRECT(A1&"!A1:A5"))

と入れます。この式をB31までコピーします。

注意としては、セルに入れた、○日目とシート名の○日目の
○の数字の部分の全角、半角を揃えておくこと。
違うとエラーになります。

Q代表戦などの選手入場の時に流れる曲の曲名は?

代表戦などのおそらくFIFA主催の試合でだと思いますが、
あの選手入場のときに流れる曲の曲名はなんと言うのでしょうか。
この曲に関することが書いてあるホームページでも結構です。
よろしくお願いします。

Aベストアンサー

「FIFA ANTHEM」という曲らしいです。正式にはJASRACによると「FIFA HYMNE~ANTHEM」で、「FIFA ANTHEM」は副題というか通称なのかな。FIFA公認テーマソングで、作曲はFRANZ LAMBERTという人です。CDは出ていないみたいですね。

Q[Excel]シート名を特定セルに自動挿入できますか

Excelで、シート名がタイトルになっているようなブックがあります。

これを自動的に特定セルに挿入したいのですが、どのようにすればできますか?

よろしくお願いします。

Aベストアンサー

はじめまして。
サンプルマクロを作ってみました。以下の操作で実行してみて下さい。もし、下記の操作手順がわからない時はお知らせ下さい。もう少し詳しく説明させていただきます。

1.新規ブックを開き、VBE(Visual Basic Editor)の画面を表示させる。
2.ThisWorkbookにマウスをあわせ、ダブルクリックする。
3.ThisWorkbookのモジュールシートに下記のコードをコピー・ペーストする。
4.ブックを保存終了する。
5.再度ブックを開く。
6.現在そのブックにあるそれぞれのシート名がそれぞれのシートのA1に自動で入力される。
7.新規シートを挿入すると、「シート名を入力して下さい。」というダイアログボックスが表示されるので、カーソルが点滅しているところにシート名を入力し、OKボタンをクリックする。
8.自動的にシート名とA1にシート名が自動的に入力される。

Workbook_Openイベントは、ブックが開かれた時だけマクロが走るイベントです。
Workbook_NewSheetイベントは、新規にシートが追加された時にマクロが走るイベントです。

私でよろしければ、あなた様のやりたいことが実現できるまで一緒に考えていきたいと思います。もし変更点などがありましたら、ご遠慮なくお知らせ下さい。


Private Sub Workbook_Open()

Dim i As Integer
Dim myCnt As Integer

myCnt = Worksheets.Count
For i = 1 To myCnt
ThisWorkbook.Worksheets(i).Range("A1").Value = ThisWorkbook.Worksheets(i).Name
Next i

End Sub

Private Sub Workbook_NewSheet(ByVal Sh As Object)


Dim myName As String
Dim myMsg As Integer

ActiveSheet.Move after:=ThisWorkbook.Worksheets(Worksheets.Count)
myName = Application.InputBox("シート名を入力して下さい。", Title:="シ ー ト 名 入 力", Type:=2)
If myName = "False" Then End
If myName = "" Then
Do
MsgBox "シート名が入力されていません。きちんと入力して下さい。"
myName = Application.InputBox("シート名を入力して下さい。", Title:="シ ー ト 名 入 力", Type:=2)
If myName = "False" Then End
Loop While myName = ""
End If

Do
myMsg = MsgBox("シート名は" & myName & "でよろしいですか?", vbYesNo + vbQuestion)
If myMsg = vbNo Then
myName = Application.InputBox("シート名を入力して下さい。", Title:="シ ー ト 名 入 力", Type:=2)
If myName = "False" Then End
If myName = "" Then
Do
MsgBox "シート名が入力されていません。きちんと入力して下さい。"
myName = Application.InputBox("シート名を入力して下さい。", Title:="シ ー ト 名 入 力", Type:=2)
If myName = "False" Then End
Loop While myName = ""
End If
End If
Loop While myMsg = vbNo

ThisWorkbook.Worksheets(Worksheets.Count).Name = myName
ThisWorkbook.Worksheets(Worksheets.Count).Range("A1").Value = ThisWorkbook.Worksheets(Worksheets.Count).Name

End Sub

はじめまして。
サンプルマクロを作ってみました。以下の操作で実行してみて下さい。もし、下記の操作手順がわからない時はお知らせ下さい。もう少し詳しく説明させていただきます。

1.新規ブックを開き、VBE(Visual Basic Editor)の画面を表示させる。
2.ThisWorkbookにマウスをあわせ、ダブルクリックする。
3.ThisWorkbookのモジュールシートに下記のコードをコピー・ペーストする。
4.ブックを保存終了する。
5.再度ブックを開く。
6.現在そのブックにあるそれぞれのシート名がそれぞれのシ...続きを読む

Q浦和開幕戦で使われていた洋楽の曲名

ちょっと、カテ違いかもしれませんが…。
昨日の、Jリーグ開幕戦で埼玉スタジアム内に流れていた洋楽の曲名を知りたいのです。

だいたい、選手が練習を始めたぐらいに2,3曲洋楽が流れたと思うんですが、もし分かる方がいたら教えて頂けますでしょうか?
宜しくお願いします。

Aベストアンサー

音楽が流れている時に選手のコメントを読んでいた朝井夏海さんの事務所のホームページで詳しく調べることが出来ます。
もし、いつも流れている曲と違う曲ならば掲示板で質問してみてください。

また、このページから一部の曲を視聴&購入も出来ます。http://www.komura.com/urawa/music/

参考URL:http://homepage2.nifty.com/my-s/mainmenu.htm

Q《エクセル2000》任意のセルに、他のシート名を反映させるには?

任意のセルに、他シートの例えばA1セルを参照させたい時は

=シート名!A1

とすれば、そのセルの情報が反映されますが、別シートのタブに入力されている名前そのものを任意のセルに表示させるにはどうすればいいのでしょう?

(過去の質問をチェックしてみましたが、似て非なる質問が多数ヒットしてしまい、挫折しました)

Aベストアンサー

ツール-マクロ-VBE
挿入-標準モジュールで標準モジュールの画面が出る。
下記を標準モジュールに貼り付けて、F5を押して実行してください。
Sub test08()
Dim sh As Worksheet
i = 1
For Each sh In ActiveWorkbook.Worksheets
Worksheets("sheet1").Cells(i, "A") = sh.Name
i = i + 1
Next
End Sub
i=1で開始行を、
Cells(i, "A") で書き込む列を、
Worksheets("sheet1").CellsのSheet1の部分で書き込むシート名を指定してますので適当に変えてください。
タブの左からの順に出る。

Q日本代表戦のときに流れる曲名がわかりません

日本代表戦の時に流れる曲を探しています。
外国人が歌っているのはTVで見たことはあるのですが、曲名や歌手がわかりません。
どなたかわかる方いませんか?

○W杯予選でも流れている曲です。
○番組のサッカーコーナーになると、流れる曲です。
 (川平さんの時に良く流れるかも)
○もしかしたら、CM(マークX)で流れてるのは同じ曲か も。

Aベストアンサー

サラブライトマン
ア・クエスチョン・オブ・オナー
だと思います
以下URLで試聴できます

参考URL:http://www.toshiba-emi.co.jp/sarah-brightman/disco/tocp40151.htm

QExcelのVBAでシート名を指定してシートを挿入(追加)したい。

変数の値をSheet名にしてシートを追加したいのですが、どのようにしたらいいのでしょうか?

Aベストアンサー

Sub test01()
Dim a As String
a = Range("a1")
a = "合計表3"
Workbooks("book1").Worksheets.Add
x = Worksheets.Count
MsgBox x
Workbooks("book1").Worksheets(x).Name = a
End Sub
aはどちらか採用してください。
MsgBox xは不用になれば削除して下さい。
まずSheetを1つ増やして、名前を好きなものに
変更すると言うイメージです。「好きな名前のシート
を作る」というイメージに囚われて、かって私もつまずきました。
それはSheetsコレクションに、Createなどするのでなく、
Addするという考えにあるようです。


人気Q&Aランキング

おすすめ情報