アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルVBA初心者です。
WEBからデータを取得しておりますが、正しくデータが取得出ず止まってしまいます。
数字以外が含まれる場合は”0”ゼロを表示させたいのですが
うまくいきません。どなたか教えてください。
お願いいたします。
word1とword2の<>内にはタグが入っています。

Sub point()
Word1 = "<>"
Word2 = "<>"
Word3 = "pt"
Select Case True
Case InStr(strHtml, Word1) > 0
Point1 = InStr(strHtml, Word1)
Point2 = InStr(Point1, strHtml, Word2) + Len(Word2)
Point3 = InStr(Point2, strHtml, Word3)
WS_PR.Cells(i, Point_C) = LTrim(RTrim(Replace(Mid(strHtml, Point2, Point3 - Point2), vbLf, "")))
Case InStr(strHtml, Word1) = 0
WS_PR.Cells(i, Point_C) = 0
End Select
End Sub

A 回答 (2件)

こんにちは。



私には、今の所ちゃんとした答えがありませんが、何かのお役に立てるかもしれません。

>数字以外が含まれる場合は”0”ゼロを表示させたいのですが
どこに、数字以外が含まれるというのでしょうか?
どこに0を表示させたいのか分かりません。

'例えば、こういうことでしょうか。

Sub Test1()
buf = "abc"
If buf Like "*[^0-9]*" Then
  msg = "0"
End If
End Sub


それと、
LTrim(RTrim(....
これって、もしかしたら、Trim のことではないでしょうか。

それと、複雑な内容でしたら、正規表現で取り出すほうが簡単です。
正規表現というのは、究極のワイルドカードのことです。
ただし、多少、スピードは落ちます。

'//
Sub TestRegularExpression()
Dim RegEx As Object
Dim Ms As Object
Dim buf As String
Dim Ret As String
Set RegEx = CreateObject("VBScript.RegExp")

buf = "abcde<123>myTime<456>abcptd"

With RegEx
.Global = True
.IgnoreCase = False
.MultiLine = True
.Pattern = "\>([A-Za-zぁ-龠]*?)\<" '該当するパターン(>と<で囲まれた文字)
If .Test(buf) Then
Set Ms = .Execute(buf)
Ret = Ms(0).subMatches(0)
End If
If Ret <> "" Then
 MsgBox Ret
End If
End With
End Sub
    • good
    • 0
この回答へのお礼

WindFaller-san
ご丁寧な回答をありがとうございます!
数字以外が含まれますのは、word2になります。
私が経験不足で理解が出来てない部分があり、判りずらい文章ですみませんでした。
正規表現の記述ありがとうございます!

お礼日時:2018/12/09 06:39

サンプルをコピペして使ってみるのは?


http://www.fastclassinfo.com/entry/vba_ie_control
    • good
    • 0
この回答へのお礼

goold-manさん
ご回答ありがとうございます。
ネットで探していたのですが、これは知りませんでした。
早速確認してみます!

お礼日時:2018/12/07 07:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!