- ベストアンサー
エクセルのシート名の表示
エクセルシートのセルに数式でシート名を自動表示することって出来ますか? シート名を変更すると、そのセルに表示されているシート名も自動的に変わるような・・・。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは フォルダ名とファイル名とシート名を表示する関数 =CELL("filename",セル) を使えば可能ですが保存されていないファイルでは その結果は空白になるので一旦保存されたBOOKに対して 対応可能な式ですが =REPLACE(CELL("filename",A1),1,FIND("]",CELL("filename",A1)),) で試してみて下さい
その他の回答 (2)
- ja7awu
- ベストアンサー率62% (292/464)
> マクロの更新?をしないと別のシート名が表示されてしまいます。 そんなことは、ないと思いますが・・・ 「現在アクティブになっているシート名を表示したい」ということですよね。 「コードB」を記述しましたか? また、アクティブシートではなく、インデックス番号(左から何番目のシートか)を 指定して、そのシート名を返すのであれば、下記のようにします。 使い方は、=GetSheetName(5) とすると左から5番目のワークシート名を返します。 Function GetSheetName(Inx As Integer) As String Application.Volatile GetSheetName = Worksheets(Inx).Name End Function > 全てのシートにそれぞれの取引先名を入力します。 シート名を「取引先名」にする訳ですよね。 > その取引先名を決まったセルに表示したい 同じシート上のセルにですよね。それだったら前のでいいはずですが・・・?
お礼
すみませんでしたっ。やり方を間違っていました。出来ました!ありがとうございました。m(_ _)m
- ja7awu
- ベストアンサー率62% (292/464)
ユーザ定義関数を使ってアクティブシート名を取得する方法です。 関数作成手順: Alt + F11 ---> メニューから[挿入]--->[標準モジュール]で開いたコード ウィンドゥに下記の[コードA](たったの4行)をコピーして貼り付けます。 左側の「プロジェクト」ウィンドゥで(表示されていないときは、Ctrl + R) 「ThisWorkbook」をダブルクリックして表示されたコードウィンドゥに [コードB]をコピーして貼り付けます。(ちょこっと3行) Alt + Q で、ワークシート画面に戻ります。 使い方は、簡単で、シート名を表示したいセルに次の式を記入します。 =GetActiveSheetName() これでどうでしょうか? '---- (コードA)この下から4行 ------ Function GetActiveSheetName() Application.Volatile GetActiveSheetName = ActiveSheet.Name End Function '---- (コードB)この下から3行 ------ Private Sub Workbook_SheetActivate(ByVal Sh As Object) Application.Calculate End Sub
お礼
ありがとうございました。難しいマクロの世界はさっぱり解らないのですが、ご指導の通りやってみました。 え~と、私が何をしたいのかを述べますと、例えば見積書を作成するとしまして、シートを100個作って、全てのシートにそれぞれの取引先名を入力します。その取引先名を決まったセルに表示したい時に、また100回セルに取引先名を入力する手間をなくし、数式のコピーで出来ないものかと思いました。ページ設定でヘッダー&フッターにシート名を選択すると簡単にシート名が表示されますよね?あんな感じで。 それで、ja7awuさんの方法ですと、マクロの更新?をしないと別のシート名が表示されてしまいます。私みたいな事考える人、いないのかな・・・・?
お礼
ありがとうございます。数式の内容はさっぱり理解できませんでしたが出来ました!感激です。