HPをまるごとコピーしてEXCELのシートに貼り付けるマクロを作りました。
objIE.ExecWB 17, 0
objIE.ExecWB 12, 0
objIE.Quit
Worksheets("Sheet1").Select
Range("A5:A5500").Clear
Range("A5").Select
Application.Wait Now() + TimeValue("00:00:05")
ActiveSheet.Paste
Set objIE = Nothing
ですがこれだとハイパーリンクなどもコピーしてしまい使いづらいのでtextデータだけをコピーしたいと思います。
objIE.Document.Body.InnerText
ググってみた結果、これを使うとできそうな気がするのですがここから先がわかりません。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
●
objIE.ExecWB 17, 0
objIE.ExecWB 12, 0
は全選択してコピーしているだけなので、
クリップボードの中のテキストだけを
PasteSpecialするだけです。
myURL = "http://oshiete1.goo.ne.jp/qa4607197.html?ans_cou …
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.Visible = True
.Navigate myURL
Do While .Busy
Loop
Do Until .ReadyState = 4 'READYSTATE_COMPLETE
Loop
.ExecWB 17, 0 'OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT
.ExecWB 12, 0 'OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT
End With
objIE.Quit
Set objIE = Nothing
With Worksheets("Sheet1")
.Range("A5:A5500").Clear
.Range("A5").Select
.PasteSpecial Format:="テキスト"
End With
●どうしても.Document.Body.InnerTextを使うなら、
DataObjectを使ってクリップボードに入れる方法も
あるかもしれません。
Microsoft Forms 2.0 Object Libraryに参照設定が
必要です。
ついでに下のようにほかの2つも参照設定しておけば、
コードを書くときに楽ですよね。
上の17,0の意味もわかりやすくなると思います。
'Microsoft Internet Controlsに参照設定
'Microsoft HTML Object Libraryに参照設定
'Microsoft Forms 2.0 Object Libraryに参照設定
Dim objIE As InternetExplorer
Dim myDoc As MSHTML.HTMLDocument
Dim myData As DataObject
myURL = "http://oshiete1.goo.ne.jp/qa4607197.html?ans_cou …
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.Visible = True
.Navigate myURL
Do While .Busy
Loop
Do Until .ReadyState = 4 'READYSTATE_COMPLETE
Loop
Set myDoc = .document
End With
myStr = myDoc.body.innerText
objIE.Quit
Set myDoc = Nothing
Set objIE = Nothing
Set myData = New DataObject
With myData
.SetText myStr
.PutInClipboard
End With
With Worksheets("Sheet1")
.Range("A5:A5500").Clear
.Range("A5").PasteSpecial
End With
Set myData = Nothing
No.3
- 回答日時:
#2です。
>objIE.ExecWB 17, 0
>objIE.ExecWB 12, 0
を使うと、私のコードは↓のようにしてもいけます。
'参照設定:Microsoft Forms 2.0 Object Library
Sub test()
Dim MyShell As Object, MyWindow As Object
Dim CB As New DataObject
Dim mystr As String
Dim sp As Variant
Dim i As Integer
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Worksheets(1)
Set MyShell = CreateObject("Shell.Application")
For Each MyWindow In MyShell.Windows
If UCase(Right(MyWindow.FullName, 12)) = "IEXPLORE.EXE" Then
MyWindow.ExecWB 17, 0
MyWindow.ExecWB 12, 0
With CB
.GetFromClipboard
mystr = .GetText
End With
sp = Split(mystr, vbCrLf)
For i = 0 To UBound(sp)
With ws.Cells(i + 1, 1)
.NumberFormatLocal = "@"
.Value = sp(i)
End With
Next i
If ws.Cells(1, 1).Value <> "" Then Exit For
End If
Next
Set ws = Nothing
Set wb = Nothing
End Sub
No.2
- 回答日時:
IE全選択はコードに含めていません。
IEで選択している範囲をシートに転記します。
Sub test()
Dim MyShell As Object, MyWindow As Object
Dim mystr As String
Dim sp As Variant
Dim i As Integer
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Worksheets(1)
Set MyShell = CreateObject("Shell.Application")
For Each MyWindow In MyShell.Windows
If UCase(Right(MyWindow.FullName, 12)) = "IEXPLORE.EXE" Then
mystr = MyWindow.Document.Selection.CreateRange.Text
sp = Split(mystr, vbCrLf)
For i = 0 To UBound(sp)
With ws.Cells(i + 1, 1)
.NumberFormatLocal = "@"
.Value = sp(i)
End With
Next i
If ws.Cells(1, 1).Value <> "" Then Exit For
End If
Next
Set ws = Nothing
Set wb = Nothing
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) エクセルVBAコピー 2 2022/06/08 21:45
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 関数を使ってデータと一...
-
エクセルの選択範囲以外を削除...
-
HPのtextデータをEXCELにコピー...
-
エクセルマクロで上書きして貼...
-
Excel シートのコピーの際、ペ...
-
PDFファイルをコピーしてエクセ...
-
エクセルのユーザーフォームを...
-
Excel シートに別のExcelシート...
-
Excel 数式の保護をしたセルを...
-
ExcelVBAで、ユーザーフォーム...
-
エクセルのワークシートをUSBメ...
-
VBAにて複数フォルダのエクセル...
-
シートのコピーとMsgbox無効化
-
VBA シートをコピー後、ボタン...
-
エクセルでシートを「移動また...
-
WSHで、EXCELにワーク...
-
ページの設定を別シートにコピ...
-
EXCELのVBAでシートコピーをし...
-
エクセル2007 作成した表を丸...
-
エクセルファイルを開く時、常...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの選択範囲以外を削除...
-
Excel 関数を使ってデータと一...
-
EXCELのVBAでシートコピーをし...
-
Excelの行をコピーして貼り付け...
-
EXCELで別のブックから式をコピ...
-
Excel シートのコピーの際、ペ...
-
ExcelVBAで、ユーザーフォーム...
-
エクセルVBA 1行飛ばしで転記す...
-
Excel 数式の保護をしたセルを...
-
PDFファイルをコピーしてエクセ...
-
【VBA】コピー&複数個所のペー...
-
エクセルシートを別のエクセル...
-
エクセルの1シートの内容を複...
-
エクセルでシートを「移動また...
-
ページの設定を別シートにコピ...
-
エクセルのワークシートをUSBメ...
-
【エクセル】プルダウン設定の...
-
VBA 先頭文字の0(ゼロ)...
-
シートが保護されていないのに...
-
アクセスの画面をプリントスク...
おすすめ情報