いつもお世話になっております。
やりたいことはexcelで入力したURL一覧に対して
ソースを取得し、ある文字列が入っていたら
TRUE、入ってなければFALSEを特定のセルに表示にするというプログラムを組みたいのですが
以下サイトを参考に
http://otsukare-tion.com/2013/12/excel_vba01/
URL一覧からMETA情報を抽出してB列~に書き出す
という非常に惜しいサンプルコードを発見しました。
恐らく以下辺りを修正すれば
'title、description、keywords、H1を取得して出力
.Pattern = "<title>(.*?)</title>"
Set mc = .Execute(buf)
If mc.Count <> 0 Then url.Offset(0, 1) = mc(0).SubMatches(0)
ある文字列が入っていたら
TRUE、入ってなければFALSEを特定のセルに表示にするということができそうなのですが
VBのソースがイマイチ分かりません、、、
ご教示ください!!
No.2
- 回答日時:
こんにちは
>testという文字列が含まれているか、ソースコードでどうやって
>記述すれば良いか教えてほしいです、
文字列stringsの中に"test"が含まれているかどうか程度であれば
InStr(strings, "test")
でも調べられます。
stringsの中の何文字目に"test"が出現するかが返されますので(無いときは0)、
InStr(strings, "test") > 0
で判別できるでしょう。
stringsがHTMLソースのような場合、タグやその属性、あるいは表示されるテキストなどの全体が同等の文字列として単純に調べることになりますので、「〇〇は除きたい」というような複雑な検索を必要とする場合は、正規表現を利用した方が簡単になると思います。
以下は正規表現の簡単な説明です。(検索すればいろいろ見つかるはずです)
MSDN(わかりにくいけど本家なので)
https://msdn.microsoft.com/ja-jp/library/cc39240 …
その他(適当に)
http://www.officetanaka.net/excel/vba/tips/tips3 …
http://www.excel-ubara.com/excelvba4/EXCEL232.html
No.4ベストアンサー
- 回答日時:
うーん。
リンク先の内容はちょっと意味が違うような気がしますね。#2さんの解答が、正解なのですが、問題は、その検索単語が、どういった種類のものかということですね。いずれにしても、注意して行わないといけません。
例えば、以下のようなコードを、一つのサイトで延々とやったら、警察に掴まってしまいます。そうでなくても、ネットにまつわる警察の不当逮捕は、最近も起きています。証拠もなしに、警察が動き出してしまいます。最近では、そのようなことをした覚えがない女性が19日間の勾留の上、仮処分で釈放されたそうです。それも、犯人は、女子中学生のなりすましだったとか。
調べた方法は、Google で、"Excel"という単語で検索したサイトの一覧に、「表計算」という語を検索するという方法です。厳密に、内容を精査したわけではありません。
10個の中で、True 4個、False 6個という結果です。
Sub Main()
Dim c As Range
For Each c In Range("A1", Cells(Rows.Count, 1).End(xlUp))
If c.Value Like "http*" Then
c.Offset(, 1).Value = SearchTextinWeb(c.Value, "表計算")
End If
Next
End Sub
Function SearchTextinWeb(ByVal strURL As String, ByVal sTxt As String)
Dim objHTTP As Object
Dim httpLog As String
Dim ar As Variant
Dim n As Variant
On Error Resume Next
Set objHTTP = New WinHttp.WinHttpRequest '("WinHttp.WinHttpRequest.5.1")
objHTTP.Open "GET", strURL, False
objHTTP.Send
If objHTTP.Status = 200 Then
httpLog = objHTTP.responseText
If InStr(1, httpLog, sTxt, vbTextCompare) > 0 Then
SearchTextinWeb = True
Else
SearchTextinWeb = False
End If
Else
SearchTextinWeb = objHTTP.Status
End If
Set objHTTP = Nothing
On Error GoTo 0
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Excel(エクセル) Excelでnullになるような式のセルをマクロで空白行と認識させるにはどうすればいいですか? 3 2023/03/13 13:42
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Excel(エクセル) EXCEL関数(数式)を教えてください 2 2022/06/08 18:32
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「何とかで始まり、何とかで終...
-
VBA EXCEL あるセルの中の一...
-
正規表現の否定先読みで、複数...
-
「abcで始まらない」を正規表現...
-
バッチファイルの正規表現を利...
-
英数字混じり8文字以上の正規表現
-
CSVファイルの中で、「 , 」カ...
-
VBA 文字に半角が含まれて...
-
エクセルにMicrosoft Barcode C...
-
EXCELからCSVにすると余計なカ...
-
エクセルで数値を全角文字(カ...
-
CString から LPCTSTRの型に変換
-
Excel VBAでPDFファイルをMicro...
-
WORDで改ページすると時々グレ...
-
Accessでのグループ化で全角・...
-
英数字のみ全角から半角に変換
-
マクロを使ってフォルダー内に...
-
CSVの定義
-
プログラミングでは、半角括弧...
-
全角英数字の必要性が理解できない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「何とかで始まり、何とかで終...
-
「abcで始まらない」を正規表現...
-
VBA EXCEL あるセルの中の一...
-
正規表現の否定先読みで、複数...
-
バッチファイルの正規表現を利...
-
角カッコが含まれてるかどうか...
-
正規表現 英数字を1つ以上含む...
-
C++でofstreamに空白を含む文字...
-
VBにおける文字列の部分一致検索
-
Perl CSVファイルの複数条件で...
-
XML::Xpathで部分一致検索をす...
-
指定した文字列を複数含むとい...
-
正規表現にて文字数をチェック...
-
正規表現について
-
CSVファイルの中で、「 , 」カ...
-
英数字のみ全角から半角に変換
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
住宅にカナを入力する際に丁目...
-
Excel VBAでPDFファイルをMicro...
おすすめ情報
すいません、
testという文字列が含まれているか、ソースコードでどうやって記述すれば良いか教えてほしいです、
メソッドとか全く分からず、、、