• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:excelvba セルの中のデータの取得)

ExcelVBAでセル内のデータを取得する方法

このQ&Aのポイント
  • Excel2010 VBAを使用して、特定のセル内の文字データを取得する方法を教えてください。
  • セル内に入っている複数の文字列から、特定の文字から特定の文字までの間の文字を取得したいです。
  • セルA1に入力された文字列から、「始まり」と「終わり」の間の文字を取得したいです。取得したい文字は、12345678、56789と56789-784545、FDSDSDです。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

a = ActiveSheet.Cells(1, 1) i = InStr(a, "始まり") + 4 ’始まり+改行の次の位置 j = InStr(a, "終わり") '「終」の位置 b = Mid(a, i, j - i) Debug.Print "/" & b & "/"

その他の回答 (1)

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

ちゃんとやるなら正規表現を使うべきですね。 手抜きならSplit関数で済ます方法もあります。 以下のコードでは、(改行)+「終わり」の文字列を一旦「始まり」+(改行)に置換し、「始まり」+(改行)を区切り文字としてSplit関数で分割。 分割した文字列の2番目を「始まり」と「終わり」で区切られた文字列として返しています。 Function Sample(rTarget As Range) As String   Dim sTraget As String   Dim sAnser   sTarget = Replace(rTarget.Text, vbLf & "終わり", "始まり" & vbLf)   sAnser = Split(sTarget, "始まり" & vbLf)   Sample = sAnser(1) End Function

mcs-tani
質問者

お礼

ご教授ありがとうございました。 おかげで解決する事ができました。