[[20190227212738]] 『文字列内の数値を抜き取る』(まこと) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『文字列内の数値を抜き取る』(まこと)

<Attributes><ProductAttribute ID="4519"><ProductAttributeValue><Value>25028</Value></ProductAttributeValue></ProductAttribute><ProductAttribute ID="4520"><ProductAttributeValue><Value>25031</Value></ProductAttributeValue></ProductAttribute><ProductAttribute ID="4535"><ProductAttributeValue><Value>25083</Value></ProductAttributeValue></ProductAttribute></Attributes>

上記文字列の内、数字の部分のみを個別のセル(最小2つ、最大6つ)に抜き取る方法ございますでしょうか?

上記文字列の場合、下記のようになります。

A1:4519
B1:25028
C1:4520
D1:25031
E1:4535
F1:25083

数字の前後の内容は全て同じになります。

< 使用 Excel:Office365、使用 OS:MacOSX >


>数字の前後の内容は全て同じになります。

それを全部、"に置換して
区切り位置で、セル分割して
コピー、行列入れ替えて貼り付け

でどうでしょうか。

(マナ) 2019/02/27(水) 22:42


>コピー、行列入れ替えて貼り付け

これは不要でした。

(マナ) 2019/02/27(水) 22:44


こんにちは。

 私もよくわかってませんが、
 MSXML パーサー とかをキーワードに検索してみてください。

 以下のサンプルの実行のためには、「Microsoft XML  v6.0」を参照設定する必要があります。

 文字列が A1 セルに入っているものとしています。
 書き出しは、A2〜F2列にしています。

 Sub test()

  Dim XMLDocument As MSXML2.DOMDocument60
  Dim Node As IXMLDOMNode, Attr As IXMLDOMAttribute, CNode As IXMLDOMNode
  Dim S As String, i As Integer

  S = Range("A1").Value

  Set XMLDocument = New MSXML2.DOMDocument60

  XMLDocument.async = False
  XMLDocument.LoadXML S

  If (XMLDocument.parseError.ErrorCode <> 0) Then
      Debug.Print XMLDocument.parseError.reason  
  End If

  i = i + 1
  For Each Node In XMLDocument.ChildNodes
      For Each CNode In Node.ChildNodes
          For Each Attr In CNode.Attributes
              Cells(2, i).Value = Attr.NodeValue
              Debug.Print Attr.NodeValue
              i = i + 1
          Next
          Cells(2, i).Value = CNode.nodeTypedValue
          Debug.Print CNode.nodeTypedValue
          i = i + 1
      Next
  Next

 End Sub
(でれすけ) 2019/02/28(木) 10:47

 すみません。
 
 MACなのですね。

 で、調べていたら、最近のExcelはXMLファイルを普通に開けるのですね
 知らなかった... 

 ファイル】→【開く】から、ファイルの種類をXMLファイルにして
 開いてみたらどうでしょうか。

(でれすけ) 2019/02/28(木) 14:11


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.