• 締切済み

VBA(マクロ)を使わずファイル名の数字のみ抽出

ファイル名の抽出方法は、ググったらわかりましたが、ファイル名からの数字のみ抽出する方法は可能でしょうか? =MID(CELL("filename"),SEARCH("[",CELL("filename"))+1, SEARCH("]",CELL("filename"))-SEARCH("[",CELL("filename"))-5) =MID(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1))+1,FIND("]",CELL("filename",$A$1))-FIND("[",CELL("filename",$A$1))-5) 例: 123abc456.xls → 123456 sample123.xls → 123   マクロは考えていないです。よろしくお願いします。

みんなの回答

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

作業列を使う方法です。 以下の例では使用するファイル名の最大を拡張子をのぞく16文字としています。 もっと長いファイル名を使うときはそれに合わせて変えて下さい。 A1にファイル名が入っているとします。 D1に↓を入れてS1までコピーします。 =IFERROR(MID($A1,COLUMN(A1),1)*1,"") B1セルに↓を入れて下さい =IFERROR((D1&E1&F1&G1&H1&I1&J1&K1&L1&M1&N1&O1&P1&Q1&R1&S1)*1,"")

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です。 前回の投稿では操作が判らない部分があると思います。 >Alt+F11キー → メニュー → 挿入 → VBE画面のカーソルが点滅しているところに は >Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに です。 どうも失礼しました。m(_ _)m

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 関数で何とかやってみようとしましたが、 作業用の列をたくさん使わなくてはならない方法しか思いつきませんので お望みの方法ではないと思いますが、ユーザー定義関数を作ってみました。 Alt+F11キー → メニュー → 挿入 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト Function 数値抽出(検索 As String) 'この行から Dim k As Long, str As String, buf As String For k = 1 To Len(検索) str = Mid(検索, k, 1) If IsNumeric(str) Then buf = buf & str End If Next k 数値抽出 = buf End Function 'この行まで Excel画面に戻り、↓の画像ではC1セルを選択 → アドレスバーの左側のfxのアイコンをクリック → 「関数の分類」の右側▼で 「ユーザー定義」を選択 → 「数値抽出」というユーザー定義関数が選択されているはずですので → OK 「検索」の窓に A1 と入力(A1を選択) → OK これをフィルハンドルで下へコピーしてみてください。 ※ 関数で簡単に出来る方法があればごめんなさいね。m(_ _)m

すると、全ての回答が全文表示されます。

関連するQ&A