Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


652 / 13645 ツリー ←次へ | 前へ→

【79212】既に開いているIEの画面から、エクセルにデータをコピペするには keen 17/6/16(金) 16:50 質問[未読]
【79215】Re:既に開いているIEの画面から、エクセル... カリーニン 17/6/16(金) 17:48 発言[未読]
【79216】Re:既に開いているIEの画面から、エクセル... カリーニン 17/6/16(金) 18:00 発言[未読]
【79218】Re:既に開いているIEの画面から、エクセル... カリーニン 17/6/16(金) 18:57 発言[未読]
【79219】Re:既に開いているIEの画面から、エクセル... keen 17/6/16(金) 19:50 お礼[未読]
【79220】Re:既に開いているIEの画面から、エクセル... keen 17/6/16(金) 20:03 質問[未読]
【79221】Re:既に開いているIEの画面から、エクセル... カリーニン 17/6/16(金) 20:17 発言[未読]
【79222】Re:既に開いているIEの画面から、エクセル... カリーニン 17/6/16(金) 20:24 発言[未読]
【79223】Re:既に開いているIEの画面から、エクセル... Keen 17/6/16(金) 20:32 質問[未読]
【79224】Re:既に開いているIEの画面から、エクセル... カリーニン 17/6/16(金) 20:39 発言[未読]
【79225】Re:既に開いているIEの画面から、エクセル... カリーニン 17/6/16(金) 20:43 発言[未読]
【79226】Re:既に開いているIEの画面から、エクセル... keen 17/6/16(金) 20:50 質問[未読]
【79227】Re:既に開いているIEの画面から、エクセル... カリーニン 17/6/16(金) 21:13 発言[未読]

【79212】既に開いているIEの画面から、エクセルに...
質問  keen  - 17/6/16(金) 16:50 -

引用なし
パスワード
   keenと申します、初めて質問させていただきます。
よろしくお願いいたします。

1.既に開いているIEの画面(1つのみ開いている)のデータを全選択
2.エクセルに貼り付け
3.F8ボタンを押して画面を切り替え
4.エクセルの列を横に1列ずらして、1.以降を繰り返す

上記内容を自動できないか、試行錯誤しています。

以下準備したのですが、IEの表示内容を全選択できておらず、
クリップボードの内容がエクセルに貼り付けされるのみです。

大変お手数をおかけいたしますが、どのように修正をすればよいか、
ご教示いただけますでしょうか。

なにとぞよろしくお願いいたします。


Sub abc()

  Dim objShell As Object, objWindow As Object

  Set objShell = CreateObject("Shell.Application")
  
  For Each objWindow In objShell.Windows

  If TypeName(objWindow.document) = "HTMLDocument" Then     
      
  objWindow.ExecWB 17, 0 
  objWindow.ExecWB 12, 0
  Range("A1").Select
  ActiveSheet.PasteSpecial Format:="テキスト"
  SendKeys "%{F8}"
    
  objWindow.ExecWB 17, 0 
  objWindow.ExecWB 12, 0
  Range("B1").Select
  ActiveSheet.PasteSpecial Format:="テキスト"
  SendKeys "%{F8}"
 
  ‘以下Range(“”)の中のセル番号を変えて式を続ける   
    
End If
Next
  
Set objShell = Nothing
Set objWindow = Nothing

End Sub

【79215】Re:既に開いているIEの画面から、エクセ...
発言  カリーニン  - 17/6/16(金) 17:48 -

引用なし
パスワード
   試した結果、一応はIEのテキストをシートに貼り付けできているようです。

InnnerTextを取得するようにすれば、クリップボードを介しなくてもテキスト
をシートに転記できるようになります。

※IEは一つのみ開いているとのことですが、同じものをいくつもセルに転記
するのは何故ですか?同じものでしたら、何回もコピペしないで一度コピー
したものを転記先を変えて繰り返し貼り付けするだけのような気がしますが。

あと、Alt+F8でマクロ実行のウィンドウを呼び出してますが、これは何故ですか?
別のマクロを手動で実行するためですか?

呼び出すマクロがきまってるのなら、Callするだけですが。

【79216】Re:既に開いているIEの画面から、エクセ...
発言  カリーニン  - 17/6/16(金) 18:00 -

引用なし
パスワード
   複数のIEのテキストを取得する参考です。

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub test()
Dim MyShell As Object
Dim MyWindow As Object
Dim cnt As Integer
Dim mybody As String
Dim mybdyline As Variant
 Set MyShell = CreateObject("Shell.Application")
 cnt = 0
 For Each MyWindow In MyShell.Windows
  If UCase(Right(MyWindow.FullName, 12)) = "IEXPLORE.EXE" Then
   cnt = cnt + 1
   mybody = MyWindow.Document.body.innertext
   Sleep 100
   DoEvents
   mybdyline = Split(mybody, vbCrLf)
   ActiveSheet.Cells(1, cnt).Resize(UBound(mybdyline) + 1) = WorksheetFunction.Transpose(mybdyline)
   Erase mybdyline
  End If
 Next MyWindow
End Sub

【79218】Re:既に開いているIEの画面から、エクセ...
発言  カリーニン  - 17/6/16(金) 18:57 -

引用なし
パスワード
   私はほとんど使ったことが無いのですが、場合によってはWEBクエリも有効です。

【79219】Re:既に開いているIEの画面から、エクセ...
お礼  keen  - 17/6/16(金) 19:50 -

引用なし
パスワード
   ▼カリーニン さん:
>私はほとんど使ったことが無いのですが、場合によってはWEBクエリも有効です。


ありがとうございます。
F8を押すことで ページを切り替え、切り替え後のデータをコピペするということを、数百回繰り返します。繰り返すのはどうしたらいいでしょうか?

【79220】Re:既に開いているIEの画面から、エクセ...
質問  keen  - 17/6/16(金) 20:03 -

引用なし
パスワード
   ▼keen さん:
>▼カリーニン さん:
>>私はほとんど使ったことが無いのですが、場合によってはWEBクエリも有効です。
>
>
>ありがとうございます。
>F8を押すことで ページを切り替え、切り替え後のデータをコピペするということを、数百回繰り返します。繰り返すのはどうしたらいいでしょうか?

また、私が作成したものは F8を押せていないようです。
エクセルファイル上で、F8を押しているようで こちらもどうすればいいでしょうか。
何から何まで申し訳ありません、よろしくお願いいたします。

【79221】Re:既に開いているIEの画面から、エクセ...
発言  カリーニン  - 17/6/16(金) 20:17 -

引用なし
パスワード
   >SendKeys "%{F8}"


これは
Alt+F8
ですのでマクロ実行のウィンドウが表示されます。

>F8を押すことで ページを切り替え、

ページの切替え、というのが何を示しているのかわかりません。
↓で見てもIEでF8キーには何も割り当ててないようですし。

ht tp://www.saka-en.com/windows-2/browser-function-key/

【79222】Re:既に開いているIEの画面から、エクセ...
発言  カリーニン  - 17/6/16(金) 20:24 -

引用なし
パスワード
   ちょっとハードルが高くなりますが、参考になるかもしれません。

三流君VBAでIE操作 InternetExplorer.Applicationを操作する
ht tp://www.ken3.org/cgi-bin/group/vba_ie.asp

【79223】Re:既に開いているIEの画面から、エクセ...
質問  Keen  - 17/6/16(金) 20:32 -

引用なし
パスワード
   ▼カリーニン さん:
>ちょっとハードルが高くなりますが、参考になるかもしれません。
>
>三流君VBAでIE操作 InternetExplorer.Applicationを操作する
>ht tp://www.ken3.org/cgi-bin/group/vba_ie.asp

参考ホームページをご教示いただき、ありがとうございます。
IEで開くデータベースページが、F8を押下することで、次のページに行くことになっています。

【79224】Re:既に開いているIEの画面から、エクセ...
発言  カリーニン  - 17/6/16(金) 20:39 -

引用なし
パスワード
   >IEで開くデータベースページが、F8を押下することで、次のページに行くことになっています。


手動でページを切替えたとき、URLが変わるようでしたら、VBAでURLを指定してやることでIEの
ページを切替えることができます。
javascriptで制御してるようでしたら私はわかりません。

【79225】Re:既に開いているIEの画面から、エクセ...
発言  カリーニン  - 17/6/16(金) 20:43 -

引用なし
パスワード
   あと、「IEで開くデータベースページ」が社内システムでしたら、本件は
ここのようはQ&Aサイトではなく、社内のシステム管理者に相談すべき事柄
です。

【79226】Re:既に開いているIEの画面から、エクセ...
質問  keen  - 17/6/16(金) 20:50 -

引用なし
パスワード
   ▼カリーニン さん:
>あと、「IEで開くデータベースページ」が社内システムでしたら、本件は
>ここのようはQ&Aサイトではなく、社内のシステム管理者に相談すべき事柄
>です。

ありがとうございます。

F8を押すことでURLは変わるのですが、規則性のないアルファベットの羅列であり、URL指定はできないと思います。

なお、このシステムは 社内システムではなく、客先のシステムであり 当方からの質問も受け付けてくれるシステム管理者がいない状況です。

ありがとうございます。

【79227】Re:既に開いているIEの画面から、エクセ...
発言  カリーニン  - 17/6/16(金) 21:13 -

引用なし
パスワード
   あとはAPIを使った方法か、IEウィンドウに対してSendKeysでF8を送るか、ですかね。

あとはAPIを使った方法に関してはネット上にサンプルがあると思いますし、私自身は
IEに対しては行ったことがありません。

また、SendKeysは不安定ですし、また取引先のシステムということですので、VBAから
操作した結果に対しては当方は当然責任は負えません。

先ほどの「三流君VBAでIE操作 InternetExplorer.Applicationを操作する」をリンク先
を含め隅から隅まで熟読すると手がかりがあるかもしれません。

652 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free