Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2185 / 13645 ツリー ←次へ | 前へ→

【69489】Excelファイル名から文字列を抽出する方法 東村 11/7/23(土) 8:32 質問[未読]
【69490】Re:Excelファイル名から文字列を抽出する方... ichinose 11/7/23(土) 8:53 発言[未読]
【69491】Re:Excelファイル名から文字列を抽出する方... かみちゃん 11/7/23(土) 8:58 発言[未読]
【69492】Re:Excelファイル名から文字列を抽出する方... UO3 11/7/23(土) 13:17 発言[未読]
【69499】Re:Excelファイル名から文字列を抽出する方... 東村 11/7/23(土) 18:39 お礼[未読]

【69489】Excelファイル名から文字列を抽出する方法
質問  東村  - 11/7/23(土) 8:32 -

引用なし
パスワード
   東村と申します。

経済学部_07562_○○○○.xls
工学部_11309_◎◎◎.xls
文学部_15503_△△△△.xls
薬学部_03118_●●●●●.xls


学部_氏名NO_氏名.xlsというファイル名前から氏名部分だけを取り出したいと考えています。
お手数ですが、各氏名を取り出しメッセージボックスとして出力する方法を教えてもらえませんでしょうか?
最終的には1シートにリストにしますが、この部分のコードは自分でもかけますので。

【69490】Re:Excelファイル名から文字列を抽出する...
発言  ichinose  - 11/7/23(土) 8:53 -

引用なし
パスワード
   おはようございます。

>経済学部_07562_○○○○.xls
>工学部_11309_◎◎◎.xls
>文学部_15503_△△△△.xls
>薬学部_03118_●●●●●.xls
ここまでパターンがきちんと決まっているなら・・・、

Sub test()
  Dim flnm As String
  flnm = "経済学部_07562_○○○○.xls"
  MsgBox Replace(Split(flnm, "_")(2), ".xls", "")
  flnm = "工学部_11309_◎◎◎.xls"
  MsgBox Replace(Split(flnm, "_")(2), ".xls", "")
  flnm = "文学部_15503_△△△△.xls"
  MsgBox Replace(Split(flnm, "_")(2), ".xls", "")
  flnm = "薬学部_03118_●●●●●.xls"
  MsgBox Replace(Split(flnm, "_")(2), ".xls", "")
End Sub

.xlsという文字列が氏名のなかには、まずないでしょうから・・・・。

【69491】Re:Excelファイル名から文字列を抽出する...
発言  かみちゃん E-MAIL  - 11/7/23(土) 8:58 -

引用なし
パスワード
   こんにちは。かみちゃん です。

ichinoseさんから回答がついていますが、書きかけていたので、そのままアップします。

>経済学部_07562_○○○○.xls
>工学部_11309_◎◎◎.xls
>文学部_15503_△△△△.xls
>薬学部_03118_●●●●●.xls
>
>
>学部_氏名NO_氏名.xlsというファイル名前から氏名部分だけを取り出したい

一例で、以下のような感じでもできます。

Sub Sample()
 Dim ss1 As String, ss2 As String
 Dim lngPos As String
 
 ss1 = "経済学部_07562_○○○○.xls"
 
 lngPos = InStrRev(ss1, "_")
 ss2 = Mid(ss1, lngPos + 1)
 lngPos = InStrRev(ss2, ".")
 If lngPos >= 1 Then
  ss2 = Mid(ss2, 1, lngPos - 1)
  MsgBox "実行前 " & ss1 & vbCrLf & "実行後 " & ss2
 Else
  MsgBox "取得できません" & vbCrLf & "実行前 " & ss1
 End If
End Sub

ポイントは、文字列の後ろから _ という文字と . という文字の位置を検索しています。

【69492】Re:Excelファイル名から文字列を抽出する...
発言  UO3  - 11/7/23(土) 13:17 -

引用なし
パスワード
   ▼東村 さん:

ichinoseさんのコードをパクらせていただいて

Sub Sample()
  Dim s As String
  s = "経済学部_123456_山田太郎.xls"
  MsgBox Split(Split(s, "_")(2), ".")(0)
End Sub

【69499】Re:Excelファイル名から文字列を抽出する...
お礼  東村  - 11/7/23(土) 18:39 -

引用なし
パスワード
   皆様
教えていただきましてありがとうございました。
早速活用いたします。

2185 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free