ファイル名・ワークブック名を取得するユーザー定義関数をご紹介しました。
この方法を知った方から、
「拡張子なしでファイル名をセルに表示するにはどうしたらいいのでしょう?」
というご質問をいただくこともあります。
拡張子とファイル名の間には、必ず「.」(ピリオド)が存在しますから、「.」を見つけて、その左側だけを取得すれば、拡張子なしでファイル名・ワークブック名をセルに表示させることができます。
※拡張子つきでファイル名を取得するBookName関数が定義されているときに、拡張子をのぞいたファイル名をセルに表示する例 拡張子なしのファイル名を表示したいセルに
「=LEFT(BookName(),FIND(".",BookName())-1)」
という計算式を入力する
以前、FIND関数とLEFT関数を使って住所から県名だけを取得する方法を、ご紹介しました。
考え方は同じです。
「=LEFT(BookName(),FIND(".",BookName())-1)」
という計算式の
「FIND(".",BookName())」
という箇所で、ユーザー定義関数:BookNameで取得したファイル名の中で、「.」が先頭から何文字目にあるかを調べます。
次に
「LEFT(BookName(),「.」が先頭から何文字目か -1)」
の箇所で、
BookNameで取得したファイル名から、
「.」の存在する文字数から「1」をマイナスした値、
つまり、「.」までの文字、
すなわち、拡張子を除いたファイル名の部分
を取得しています。
▼サンプルファイル(002437.xls 35KByte)ダウンロード
サンプルファイルには、BookName関数を定義し、A1セルに上記の
「=LEFT(BookName(),FIND(".",BookName())-1)」
という計算式が入力してあります。
また、A3:A6セルには
「=LEFT(BookName(),FIND(".",BookName())-1)」
に至るいくつかの計算式が入力してあります。
それぞれが何を意味している計算式で、どんな結果が表示されているかをご確認ください。
もちろん、FIND関数とLEFT関数を使って「.」の前までを取得する処理を、ユーザー定義関数の中に入れてしまくこともできます。
というか、せっかくユーザー定義関数を作るなら、その処理まで入れてしまって、引数で拡張子をつけて取得するか、拡張子なしで取得するかを指定できるほうがスマートでしょう。
その方法は、近日中に別途ご紹介します。
- Newer:メニューをカスタマイズするPowerPointマクロ
- Older:×訂正線、○取り消し線
Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » 拡張子なしでファイル名・ワークブック名を表示する