[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『文字列内の数値を抜き取る』(まこと)
<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.