
環境:WINDOWS 2000
Visual Basic 6.0
(1)htmlファイルをInbutB関数で読み込み、変数AAAに代入
(2)Instr関数を使用して Instr(htmlが格納された変数,"<td")などと特定の文字位置を検索
(3)mid関数などで特定の文字位置から文字位置を抜き出す
例:mid(AAA,<TD>開始位置A,文字列開始位置B)
上記のようなことをやりたいと考えています。
今回困っていることは<TD>開始タグの文字位置の検索です。
<td valign="top" align="right" width="600">
width="600"のtd開始タグの位置を検索したいと思っています。
ファイルは複数あり、<td と width="600" の間に入っているものも異なり、またシンプルに<td width="600>というパターンも存在します。
こういった場合、どの用に特定の条件を満たした<TD>タグの位置を検索すればよいでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
Instr 関数と Mid$ 関数で文字列を抜き出すルーチンは多少複雑です。
? CutStr(CutStr("<td valign='top' align='right' width='600'>", "td", 2), " align",1)
valign='top'
このよう、[td] と [ align] とに囲まれた [ valign='top'] を抜き出すには、
1、「td] の右側を抜き出し、
2、[ align]の左側を抜き出す
という手順が一番簡単。
? CutStr("<td valign='top' align='right' width='600'>", "td", 2)
valign='top' align='right' width='600'>
? CutStr("valign='top' align='right' width='600'>", " align",1)
valign='top'
冒頭は、この2ステップを1文にしただけです。
Public Function CutStr(ByVal Text As String, _
ByVal Separator As String, _
ByVal N As Integer) As String
Dim I As Integer
Dim J As Integer
Dim K As Integer
Dim L As Integer
Text = Text & Separator
L = Len(Separator) - 1
For I = 1 To N
J = K + 1
K = InStr(J, Text, Separator, vbTextCompare) + L
Next I
If K > J Then
CutStr = Mid$(Text, J, K - J - L)
End If
End Function
さて、この CutStr は MS-DOS 時代のそれです。
Split 関数を利用すれば、3倍速で動作する CutStr 関数を書くことが出来ます。
Instr関数、Mid$関数での文字列の処理は、Split関数での処理に置きかえれるという例です。
参考になれば幸いです。
Private Function CutStr(ByVal Text As String, _
ByVal Separator As String, _
ByVal N As Integer) As String
Dim strDatas() As String
strDatas = Split("" & Separator & Text, Separator, , 0)
CutStr = strDatas(N * Abs(N <= UBound(strDatas))))
End Function
No.1
- 回答日時:
ホントにやるとしたら、パースしないといけません。
しかしまあそうなるときっと手に負えないでしょうから1.まず1行とりだす。
2.全部大文字または小文字に変換する
3.<TD をさがしてその次の > までを取り出す
4.取り出した文字列の中からスペースをとりのぞく
5.WIDTH= という文字列をさがし、その後ろを取り出す
という手順ですかねぇ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Excel(エクセル) MID関数について 2 2022/04/22 09:13
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- 工学 【制御工学】単位ステップ応答の遅れ時間の求め方(令和2年度の機械設計技術者試験(制御工学)の問題) 3 2022/11/02 10:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのマクロについて教え...
-
エクセルの改行について
-
エクセルのVBAコードと数式につ...
-
vb.net(vs2022)のtextboxのデザ...
-
【ExcelVBA】値を変更しながら...
-
VBA ユーザーフォーム ボタンク...
-
【マクロ】変数を使った、文字...
-
ワードの図形にマクロを登録で...
-
【マクロ】切取りの場合、形式...
-
マクロVBAについて、コードを教...
-
ExcelVBAでパワポを操作したい
-
testファイル内にある複数のpng...
-
えくせるのVBAコードについて教...
-
エクセルのVBAコードについて教...
-
改行文字「vbCrLf」とは
-
エクセルVBA 検索結果を隣のシ...
-
Excelマクロで使うVBAコードを...
-
【マクロ】モジュール変数の記...
-
Excelのマクロについて教えてく...
-
vbaマクロについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<td>中の文字列に<p>は必要?
-
HTML 表の上に文字がきてしま...
-
文章が読みやすいのは?
-
こんな<form>って、基本的にあ...
-
一部の文字列の右寄せについて
-
VB6.0 特定の文字列の取得方法
-
FORMタグ挿入による勝手に改行...
-
ビットマップ(bmp)形式で背景...
-
編集が出来ません(JPEGフ...
-
画像のペイントについて
-
アイコンとバナーの違いについて
-
デジカメで撮った集合写真に写...
-
サーブレット/JSPでブラウザの...
-
tiffファイルをトリミングして...
-
FC2ブログで、画像の画面中...
-
Inkscapeでインポート...
-
縮小専用ソフトをダウンロード...
-
画像の背景の透明部分だけを広...
-
「ペイント」で.JPG保存ができない
-
アメブロの表示文字が突然大き...
おすすめ情報