プロが教える店舗&オフィスのセキュリティ対策術

単純な作業ですが少しでも手間を省きたくてボタン一つで貼り付け作業ができるようにしたいです。
画像を含んだWEBページをコピーしてテキスト形式の貼り付けを何度か繰り返していきたいんですが…

WEBページを手作業でコピー[クリップボードA]

ボタンを押してA10からエクセルに「貼り付け先の書式に合わせて」(テキストのみ)貼り付け

WEBページを手作業でコピー[クリップボードB]

ボタンを押して最終行に「貼り付け先の書式に合わせて」(テキストのみ)貼り付け


結果
[クリップボードA]
[クリップボードB]

となるような構文が知りたいです。
(最初のA10セルから貼り付けは最終行の指定でも構いません)
色々検索しましたがどうしてもうまくいかなかったので
宜しくおねがいします。

A 回答 (1件)

>画像を含んだWEBページをコピーしてテキスト形式の貼り付けを何度か繰り返していきたいんですが


これは、いわゆるキーボードマクロの世界であって、代表的なツールでは、UWSCがあります。
'// 標準モジュール
Sub Button1_Click()
' CheckClipBoard
Dim i As Long
Dim cbFormat
Dim iflg As Integer
cbFormat = Application.ClipboardFormats
If UBound(cbFormat) = -1 Then
 MsgBox "クリップボードは空です。", vbExclamation: Exit Sub
ElseIf UBound(cbFormat) <= 2 Then
 iflg = 2 'テキストファイルから
ElseIf UBound(cbFormat) > 20 Then
 iflg = 2 'ワークシートペースト
Else
 iflg = 1 'Web等の情報
End If
i = Cells(Rows.Count, 1).End(xlUp).Row '最終行を探す
On Error Resume Next
If i <= 10 Then '10行より以下には貼り付けない
 i = 10
Else
 i = i + 1 '最終行の次の行
End If
Cells(i, 1).Select
If iflg = 1 Then
 ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False, NoHTMLFormatting:=True
ElseIf iflg = 2 Then
 '通常のペースト
 ActiveSheet.Paste
End If
End Sub

ただ、私なら、VBAでは、他の方法を取ります。
手順としては、私は、Internet Express で、目的のサイトを開けて、F12 で、Webのコードを読みます。そして、そのデータが、どのClass 配下になっているか調べ、それを取得します。
Web情報をプログラムで取り出すことを、クローニングやスクレイピングと言います。
    • good
    • 0
この回答へのお礼

助かりました

素晴らしいです!
おかげさまで希望通りのマクロが完成しました。
どれがなんの作業しているかの補足あって丁寧な構文本当にありがとうございました。

お礼日時:2018/05/14 20:16

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