Excel VBA質問箱 IV

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

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


2501 / 13646 ツリー ←次へ | 前へ→

【67584】イントラのアクティブなページを取り込む ケイ 10/12/16(木) 14:56 質問[未読]
【67596】Re:イントラのアクティブなページを取り込む SK63 10/12/17(金) 9:37 発言[未読]
【67605】Re:イントラのアクティブなページを取り込む かみちゃん 10/12/17(金) 14:49 発言[未読]
【67634】Re:イントラのアクティブなページを取り込む ケイ 10/12/20(月) 14:33 質問[未読]
【67641】Re:イントラのアクティブなページを取り込む かみちゃん 10/12/20(月) 20:59 発言[未読]
【67665】Re:イントラのアクティブなページを取り込む ケイ 10/12/22(水) 11:18 質問[未読]
【67668】Re:イントラのアクティブなページを取り込む ケイ 10/12/22(水) 16:52 質問[未読]

【67584】イントラのアクティブなページを取り込む
質問  ケイ E-MAIL  - 10/12/16(木) 14:56 -

引用なし
パスワード
   イントラからエクセルにデータを取り込む方法があったら教えてください。

ある情報を登録するイントラがあり、
ログイン画面から最終的には数ページ先に進んだ登録結果の出たページ全体を
エクセルに取込たいと思います。

アドレスを固定できないため、現在アクティブなページから取込を行うという方法を調べていますがわかりません。
エクセル側で「外部データの取込」→「新しいWebクエリ」で取り込もうとしましたら、ログイン画面まで戻ったページしか表示されませんでした。

どのようにしたらアクティブページを取り込むことができますでしょうか。

ご教授おねがいいたします。

【67596】Re:イントラのアクティブなページを取り...
発言  SK63  - 10/12/17(金) 9:37 -

引用なし
パスワード
   ▼ケイ さん:
>イントラからエクセルにデータを取り込む方法があったら教えてください。
??イントラネットですか?
セキュリティーの関係で多分、クエリからはできないと思いますが
やったことないので、確実ではありませんが、現在その環境がありませんので
参考程度ですが、VBAでできるとするとSendKeysでアクティブなウィンドウに
キーコードをおくるてが使えそうですが、、、HELPで調べてみてください。
または、UWSCとかを使用するか、手軽に使えそうなのはこのあたりですか??


VBNET,C言語などでは可能ですが、WebBrowserをしようしたり
Dim webClient As New System.Net.WebClient()
Dim sr As System.IO.Stream = webClient.OpenRead(url)
  Dim srRead As New System.IO.StreamReader _
この当たりでは可能と思われます。
明確な回答ができず、申し訳ありませんが、、

【67605】Re:イントラのアクティブなページを取り...
発言  かみちゃん E-MAIL  - 10/12/17(金) 14:49 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>イントラからエクセルにデータを取り込む方法があったら教えてください。
>
>ログイン画面から最終的には数ページ先に進んだ登録結果の出たページ全体を
>エクセルに取込たいと思います。

以下のような方法でできませんでしょうか?

Sub Sample()
 Dim MyShell As Object, MyWindow As Object, IE As Object
 
 Set MyShell = CreateObject("Shell.Application")
 For Each MyWindow In MyShell.Windows
  If TypeName(MyWindow.document) = "HTMLDocument" Then
   If MyWindow.document.Title = "XXXXX" Then 'ここが重要「XXXXX」を変更る
    Set IE = MyWindow: Exit For
   End If
  End If
 Next
 Set MyShell = Nothing
 
 If IE Is Nothing Then
  MsgBox "JRAホ−ムページが開いていません"
  Exit Sub
 Else
  With IE
   .ExecWB 17, 2, 0, 0
   .ExecWB 12, 2, 0, 0
  End With
 End If
 Set IE = Nothing
 
 With Application
  .ScreenUpdating = False
 End With
 
 With Worksheets("Sheet1")
  .Cells.Clear
  .Paste .Range("A1")
  .Hyperlinks.Delete
  .DrawingObjects.Delete
  With .Cells
   .WrapText = False
   .Orientation = 0 'セル結合解除
   .AddIndent = False
   .ShrinkToFit = False
   .ReadingOrder = xlContext
   .MergeCells = False
  End With
 End With
 
 With Application
  .CutCopyMode = False
  .ScreenUpdating = True
 End With
 
End Sub

【67634】Re:イントラのアクティブなページを取り...
質問  ケイ E-MAIL  - 10/12/20(月) 14:33 -

引用なし
パスワード
   ご返信ありがとうございました。

以下のサンプルマクロから
"XXXXX" Then 'ここが重要「XXXXX」を変更という部分にURLを入れて変更してみました。ここにはURLを入れてよかったでしょうか?
結果は"JRAホ−ムページが開いていません"というメッセージが出ました。

やはり手作業で「Ctrl」+「A」+「C」で手作業で文字全体をコピーするというアナログのような方法でないと、アクティブなページは取り込めないのでしょうか・・・。
セキュルティーの問題で最終ページが取り込めないのでしょうか。


>
>Sub Sample()
> Dim MyShell As Object, MyWindow As Object, IE As Object
> 
> Set MyShell = CreateObject("Shell.Application")
> For Each MyWindow In MyShell.Windows
>  If TypeName(MyWindow.document) = "HTMLDocument" Then
>   If MyWindow.document.Title = "XXXXX" Then 'ここが重要「XXXXX」を変更る
>  MsgBox "JRAホ−ムページが開いていません"

【67641】Re:イントラのアクティブなページを取り...
発言  かみちゃん E-MAIL  - 10/12/20(月) 20:59 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>以下のサンプルマクロから
>"XXXXX" Then 'ここが重要「XXXXX」を変更という部分にURLを入れて変更してみました。ここにはURLを入れてよかったでしょうか?
>結果は"JRAホ−ムページが開いていません"というメッセージが出ました。

申し訳ありません。
メッセージは、こちらの手元にあったコードを提示したものなので、他意はありません。
つまり、指定した文字列 "XXXXX" のタイトルになっているページが開かれていないという
ことになります。

ちなみに、ブラウザの種類とバージョンは何をお使いなのでしょうか?

"XXXXX" の部分は、URL ではなく、タイトル(たとえば「Excel VBA質問箱 IV - 投稿」)を設定します。
なお、ページを複数開いていないという前提が守れるなら、別の方法もあります。

【67665】Re:イントラのアクティブなページを取り...
質問  ケイ E-MAIL  - 10/12/22(水) 11:18 -

引用なし
パスワード
   ご返信をありがとうございます。

ブラウザのバージョンはInternet Explorer8です。
WindowsXPでOffice2003を使用しています。

何か案がありましたらよろしくお願いします。


▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>以下のサンプルマクロから
>>"XXXXX" Then 'ここが重要「XXXXX」を変更という部分にURLを入れて変更してみました。ここにはURLを入れてよかったでしょうか?
>>結果は"JRAホ−ムページが開いていません"というメッセージが出ました。
>
>申し訳ありません。
>メッセージは、こちらの手元にあったコードを提示したものなので、他意はありません。
>つまり、指定した文字列 "XXXXX" のタイトルになっているページが開かれていないという
>ことになります。
>
>ちなみに、ブラウザの種類とバージョンは何をお使いなのでしょうか?
>
>"XXXXX" の部分は、URL ではなく、タイトル(たとえば「Excel VBA質問箱 IV - 投稿」)を設定します。
>なお、ページを複数開いていないという前提が守れるなら、別の方法もあります。

【67668】Re:イントラのアクティブなページを取り...
質問  ケイ E-MAIL  - 10/12/22(水) 16:52 -

引用なし
パスワード
   かみちゃんさんこんにちは。
質問していた件はGoogle検索をして解決をいたしました。
以下のVBAをExcelで実行したらうまくいきました。

そこで、次の欲なのですが、画面全体をコピーしてExcelにそのまま全てを貼り付けたのですが、これをクリップボードに貼り付けをして、クリップボードから抜き出したい必要なものを絞り込んで(6〜7つ程検索するものがあります)その結果だけをExcelに貼り付けるということは可能でしょうか?
できるとしたら、以下のどの部分をどのように変えたらよいのか
ご指導いただけますでしょうか。
よろしくお願いいたします。

Sub 取込()

Dim MyShell
Dim w
Dim objIE
Set MyShell = CreateObject("Shell.Application")
For Each w In MyShell.Windows
If UCase(Right(w.FullName, 12)) = "IEXPLORE.EXE" Then
Set objIE = w: Exit For
End If
Next
Set MyShell = Nothing
If objIE Is Nothing Then
MsgBox "IEが起動していません。", 48
Exit Sub
End If
With objIE
.Visible = True
.ExecWB 17, 2, 0, 0
.ExecWB 12, 2, 0, 0

End With
Set objIE = Nothing

  Range("A1").Select
    ActiveSheet.PasteSpecial Format:="テキスト", Link:=False, DisplayAsIcon:= _
    False
End Sub 
  

▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>以下のサンプルマクロから
>>"XXXXX" Then 'ここが重要「XXXXX」を変更という部分にURLを入れて変更してみました。ここにはURLを入れてよかったでしょうか?
>>結果は"JRAホ−ムページが開いていません"というメッセージが出ました。
>
>申し訳ありません。
>メッセージは、こちらの手元にあったコードを提示したものなので、他意はありません。
>つまり、指定した文字列 "XXXXX" のタイトルになっているページが開かれていないという
>ことになります。
>
>ちなみに、ブラウザの種類とバージョンは何をお使いなのでしょうか?
>
>"XXXXX" の部分は、URL ではなく、タイトル(たとえば「Excel VBA質問箱 IV - 投稿」)を設定します。
>なお、ページを複数開いていないという前提が守れるなら、別の方法もあります。

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