Excel VBA質問箱 IV

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

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


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

【77577】innertextの特殊文字によるsplit Satsuki 15/10/26(月) 19:29 質問[未読]
【77578】Re:innertextの特殊文字によるsplit γ 15/10/26(月) 21:09 発言[未読]
【77579】Re:innertextの特殊文字によるsplit Satsuki 15/10/26(月) 22:25 お礼[未読]
【77580】Re:innertextの特殊文字によるsplit γ 15/10/26(月) 22:39 発言[未読]

【77577】innertextの特殊文字によるsplit
質問  Satsuki  - 15/10/26(月) 19:29 -

引用なし
パスワード
   こんにちは、Satsukiと申します。
いつもいろいろ教えて頂いてありがとうございます。

HTMLのinnertextで以下の文字列を取り出し、bunruimeiに入れました。
メインページ ≫ 大分類 ≫ 中分類 ≫ 小分類 ≫ 名前

エクセルシートの各セルに大分類と小分類を入力したいのですが、
tmp = Split(bunruimei, "≫")
で上手く行かなかったので、ソースを見たら
「≫」は「»」になっていました。
ネットで調べて、
tmp = Split(bunruimei, "»")
tmp = Split(bunruimei, Chr(187))
tmp = Split(Replace(bunruimei, "»", ",", 1, 4), ",")
など色々試しましたが、上手く分割できません。どのようにしたらいいでしょうか?

どなたかご教示お願いいたします。

【77578】Re:innertextの特殊文字によるsplit
発言  γ  - 15/10/26(月) 21:09 -

引用なし
パスワード
   Dim s As String に文字列が入っているとして、

 Dim a As Variant
 a = Split(s, ChrW(&HBB))
すると 
配列a に分割されませんか?

【77579】Re:innertextの特殊文字によるsplit
お礼  Satsuki  - 15/10/26(月) 22:25 -

引用なし
パスワード
   ▼γ さん:
早速のご回答ありがとうございます。

> a = Split(s, ChrW(&HBB))
上記の方法でできました。
大変助かりました。
ありがとうございました。

またわからないことがありましたら、よろしくお願いいたします。

【77580】Re:innertextの特殊文字によるsplit
発言  γ  - 15/10/26(月) 22:39 -

引用なし
パスワード
   ご存じと思いますが、読者に向けて、
結果だけでなく調べ方をメモしておきます。

innertextをシート上のセルに書き出してください。
そして、"≫"がセルの先頭に来るように頭を削ってください。

Sub test4()
  Debug.Print AscW(Range("A1").Value)
End Sub  
とすると、最初の文字"≫"の Unicode文字コードを返します。
(Asc関数のヘルプを参照)
この場合、187になります。

----------

逆に文字コードを与えて、文字を得るには、
ChrW関数を使います。(Chr関数のヘルプを参照)

  a = Split(s, ChrW(187))
のように使います。
ChrW(&HBB)は 16進数表記で、内容は同じ。


VBEはユニコード未対応ですから、ユニコード文字をコード中に書くことは
できません。
つまり、  a = Split(s, "≫") とはできません。

したがって、ChrWを使って、
  a = Split(s, ChrW(187))
とせざるを得ません。

# なお、表記上 "≫"を流用しましたが、実際は別の文字です。

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