- ベストアンサー
Excelにて、セルでファイル名を取得する方法
Excelのブック内で、現在使用しているファイル名を取得する方法を教えていただけませんでしょうか。 宜しくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
CELL関数、MID関数、SEARCH関数を使用して、 例えば C:\MyDocument\Book1.xls のSheet1のとき、 [A1]=CELL("filename") => C:\MyDocument\[Book1.xls]Sheet1 [A2]=SEARCH("[",A1,1) => 15 [A3]=SEARCH("]",A1,1) => 25 [A4]=MID(A1,A2+1,A3-A2-1) => Book1.xls となりました。 ちなみに、Excel2000です。
その他の回答 (4)
- tinu 2000(@tinu2000)
- ベストアンサー率40% (147/366)
ヽ(^。^)ノアリャ #2のtinu2000です。 ブック名のことかな? Private Sub Worksheet_SelectionChange(ByVal Target As Range) Worksheets(1).Range("A1") = ActiveWorkbook.Name Worksheets(1).Range("A2") = ActiveSheet.Name End Sub A1にブック名、A2にシート名を表示します。 ではでは、あとはよしなに♪
- imogasi
- ベストアンサー率27% (4737/17069)
関数を使ってセルにブック名をセットすることをお望みと 思います。関数の本を調べても、見つからず、無いようです。それで下記の方法で、ユーザー定義関数を作るのは堂ですか。 (1)ワークシートの画面でALT+F11キー(VBE 画面になる。) (2)ALT+I(挿入)、ALT+M(標準モジュール) (3)下記を貼り付ける。 Function bookname() bookname = ActiveWorkbook.Name End Function (4)セットしたいセル(例えばA2)に =bookname()と入れる。するとA2の値は、Book1とかとなる。 (5)Directoryは=INFO("directory")でセット 出来ます。私に場合はC:\My Documents\と出ます。 (6)その後、挿入-関数で出る関数一覧にbooknameとして出てきます。
- tinu 2000(@tinu2000)
- ベストアンサー率40% (147/366)
ファイル名とはシート名の事でしょうか? シート名の事でなかったら外しました(汗泣) VBAになりますが、 (1)ツール→マクロ→VisualBasicEditorを選択 (2)表示→プロジェクトエクスプローラーを選択 (3)左のsheet1(sheet1)をダブルクリック (4)右の窓の中に以下を貼り付けて (5)シートの画面に戻り、任意のセルをクリックすると、A1にシート名が表示されます。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Worksheets(1).Range("A1") = ActiveSheet.Name End Sub ではでは、あとはよしなに♪
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 通常の、いわゆるワークシート関数では取得出来ないようです。 従って、VBAで書くことになると思います。 その場合のコードは、 Worksheets("シート名").Range("セル番地") = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name になります。 シート名とセル番地は、表示させたい場所の実際の名前(例えば、"Sheet1"の"A1"など)にします。 これを適当なイベントプロシージャに記述します。
お礼
皆さん沢山の回答有難うございます。 説明が上手く出来ていなかったようですが、今回は ≫ CELL関数、MID関数、SEARCH関数を使用して、 より CELL("filename") の方法でファイル名を取得できました。 有難うございました。