• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA文字抽出について)

VBA文字抽出方法|青文字を抽出する方法とは?

このQ&Aのポイント
  • VBAを使用して、添付ファイルの青文字だけを抽出したいです。しかし、作成したVBAでは添付ファイルの6、8行目の「0」が消えてしまいます。この問題に関するアドバイスを求めています。
  • VBAを利用して、添付ファイル内の青文字だけを抽出する方法を教えてください。具体的には、添付ファイルの6、8行目の「0」を除外せずに抽出する方法が知りたいです。
  • VBAを使って青文字を抽出しようとしていますが、添付ファイルの6、8行目の「0」が抜けてしまいます。この問題を解決するための方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8653/18507)
回答No.1

青文字だけを抽出したいのなら,途中の文字列をセルに書き出す必要はないのでは? Sub test() Dim j As Long, tmp As Variant For j = 1 To Cells(Rows.Count, 1).End(xlUp).Row tmp = Split(Cells(j, 1), "/") tmp2 = tmp(1) tmp = Split(tmp2, "-") tmp2 = tmp(0) tmp3 = tmp(1) Cells(j, 5) = tmp2 & "-" & tmp3 Next j End Sub

blackcat77
質問者

お礼

早速実行してみました。 希望通り作成することができました。ありがとうございました。

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

その他の回答 (2)

回答No.3

【補足】どうしても、マクロで処理したければ・・・ Public Sub test()   Dim J  As Long   Dim Tmp As Variant   For J = 1 To Cells(Rows.Count, 1).End(xlUp).Row     Tmp = Cells(J, 1)     Cells(J, 5) = CutStr(CutStr(Tmp, "/", 2), "-", 1) & "-" & _          CutStr(CutStr(Tmp "/", 2), "-", 2)   Next J End Sub と、書いた方が、他人が読んでも一目でわかると思う。

blackcat77
質問者

お礼

アドバイスありがとうございました。

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

【参考意見】これは、CutStr()を書けば事足りると思いますよ。 Public Function CutStr(ByVal Text As String, _            ByVal Separator As String, _            ByVal N As Integer) As String   Dim strDatas() As String   strDatas = Split("" & Separator & Text, Separator, , 0)   CutStr = strDatas(N * Abs(N <= UBound(strDatas))) End Function  この僅か3行の CutStr()を標準モジュールに登録すれば、割と簡単に目的を達成できます。 ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ =CutStr(CutStr(A1,"/",2),"-",1) & "-" & CutStr(CutStr(A1,"/",2),"-",2) ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※  まあ、ちょいと式が複雑になりますが、一々VBAコードを書くケースではないと思います。

blackcat77
質問者

お礼

回答ありがとうございました。

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

関連するQ&A