Excel VBA質問箱 IV

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

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


983 / 13644 ツリー ←次へ | 前へ→

【77093】特定の文字間を抽出するマクロ moko 15/5/17(日) 20:57 質問[未読]
【77094】Re:特定の文字間を抽出するマクロ γ 15/5/17(日) 21:08 発言[未読]
【77095】Re:特定の文字間を抽出するマクロ γ 15/5/17(日) 21:22 発言[未読]
【77096】Re:特定の文字間を抽出するマクロ moko 15/5/17(日) 21:41 お礼[未読]
【77097】Re:特定の文字間を抽出するマクロ γ 15/5/17(日) 22:06 発言[未読]
【77098】Re:特定の文字間を抽出するマクロ moko 15/5/17(日) 22:27 お礼[未読]

【77093】特定の文字間を抽出するマクロ
質問  moko  - 15/5/17(日) 20:57 -

引用なし
パスワード
   VBA初心者です。
現在業務で必要なマクロを本等をみながら試行錯誤作っております。
マクロ作成工程の中で、一部どのように組んでいいかわからないものがありまして、ご教授頂けませんでしょうか?
どのように記載していいか検討もつかなかったので、自分で作成したものもなく、大変申し訳ないのですが、教えて頂けますと幸いです。

全体的には、データを操作するマクロなのですが、その中でマクロ記載ブック内のデータシートの1行目には項目が記載しており、2行目以降データがあり、最下行は都度変わります。
このようなデータです。

C列
支店名 ←1行目
名古屋
沖縄
2015051_0101番_東京.xls
2015年_0202_北海道.xls
大阪
2015051_0101_千葉.xls

上記の列を、下記のように置き換えたいのですが。

C列
支店名
名古屋
東京
北海道
大阪
千葉

「_」と「.xls」の間の文字のみに置き換えたいのですが、「_」は二つ入っておりますので、(三つの場合もあります)最後の「_」と「.xls」の間の取り出しということになりますので、どのようにマクロを作成していいか全くわかりません。
また、_や.xlsが入っていない行もありますので、その場合は置き換えは不要となります。
_と.xlsは必ず同時に入っている想定です。
「_」が一つならまだしも二つ、三つ入っている場合となるとどのようにしていいかわかりません。
マクロの中の一つの工程となりますので、マクロでの処理を希望です。

どなたかお分かりの方、お助け頂きたくお願い致します。

【77094】Re:特定の文字間を抽出するマクロ
発言  γ  - 15/5/17(日) 21:08 -

引用なし
パスワード
   InStrRev 関数を使って、
うしろから検索して最初に "_" が登場する位置を求めます。
あとは、Mid関数で取り出し、".xls"を""に置換。
と言った方針でどうでしょう。

ちなみに、名古屋と沖縄の取扱が異なる理由は?

【77095】Re:特定の文字間を抽出するマクロ
発言  γ  - 15/5/17(日) 21:22 -

引用なし
パスワード
   部品です。参考にしてください。

Sub test()
  Dim s As String
  
  s = "2015051_0101番_東京.xls"
  s = Mid(s, InStrRev(s, "_") + 1)
  MsgBox Replace(s, ".xls", "")
End Sub

【77096】Re:特定の文字間を抽出するマクロ
お礼  moko  - 15/5/17(日) 21:41 -

引用なし
パスワード
   γ 様
ご教授ありがとうございます。

頂いたコードを参考にさせて頂きます。
全く思いつきませんでした。
.xlsで検索して一致したセルに対して順番に処理する、というコードを入れていけばいいのでしょうか?

>ちなみに、名古屋と沖縄の取扱が異なる理由は?
→申し訳ございません。
下記間違いでした。大変申し訳ございません。
純粋に_と.xlsの間の取り出し、なければそのままです。
担当者によってデータ入力ルールが異なっていたため現在悩んでいるところです。

名古屋
沖縄
東京
北海道
大阪
千葉

【77097】Re:特定の文字間を抽出するマクロ
発言  γ  - 15/5/17(日) 22:06 -

引用なし
パスワード
   > xlsで検索して一致したセルに対して順番に処理する、
> というコードを入れていけばいいのでしょうか?
そう思います。
# 文字列操作の関数は個数が少なく、それでいて結果が分かりやすいので、
# 労力以上の見返り(充実感)がある気がします。

【77098】Re:特定の文字間を抽出するマクロ
お礼  moko  - 15/5/17(日) 22:27 -

引用なし
パスワード
   γ 様

ありがとうございました。
私にとっては難易度がかなり高いようですが、頑張ってコードを作ってみます。
コード作成で添削いただくかもしれませんが、その際はご教授頂けますと幸いです。
文字列操作についてもっと勉強したいと思います。
ありがとうございました。

>> xlsで検索して一致したセルに対して順番に処理する、
>> というコードを入れていけばいいのでしょうか?
>そう思います。
># 文字列操作の関数は個数が少なく、それでいて結果が分かりやすいので、
># 労力以上の見返り(充実感)がある気がします。

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