Excel VBA質問箱 IV

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

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


5438 / 13644 ツリー ←次へ | 前へ→

【50735】Excel を自動更新できますか? Rin 07/8/13(月) 21:57 質問[未読]
【50736】Re:Excel を自動更新できますか? かみちゃん 07/8/13(月) 22:05 発言[未読]
【50738】Re:Excel を自動更新できますか? Rin 07/8/13(月) 22:11 質問[未読]
【50739】Re:Excel を自動更新できますか? かみちゃん 07/8/13(月) 22:22 発言[未読]
【50740】Re:Excel を自動更新できますか? かみちゃん 07/8/13(月) 22:44 発言[未読]
【50741】Re:Excel を自動更新できますか? Rin 07/8/13(月) 23:32 お礼[未読]
【50770】Re:Excel を自動更新できますか? Rin 07/8/14(火) 21:38 質問[未読]
【50771】Re:Excel を自動更新できますか? かみちゃん 07/8/14(火) 21:46 発言[未読]
【50773】Re:Excel を自動更新できますか? Rin 07/8/14(火) 22:01 質問[未読]
【50774】Re:Excel を自動更新できますか? かみちゃん 07/8/14(火) 22:13 発言[未読]
【50775】Re:Excel を自動更新できますか? Rin 07/8/14(火) 22:24 お礼[未読]
【50776】Re:Excel を自動更新できますか? かみちゃん 07/8/14(火) 22:38 発言[未読]

【50735】Excel を自動更新できますか?
質問  Rin  - 07/8/13(月) 21:57 -

引用なし
パスワード
   Excelマクロを使って
Webサイトが更新されたら
自動でマクロが動く。。。
と言った事は出来るのでしょうか?

また、タスクに入れて
マクロを自動で起動する事は可能でしょうか?

どなたか教えて下さい
宜しくお願いします!

【50736】Re:Excel を自動更新できますか?
発言  かみちゃん E-MAIL  - 07/8/13(月) 22:05 -

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

>Excelマクロを使って
>Webサイトが更新されたら
>自動でマクロが動く。。。

Webクエリを使って情報を取得しているならば、クラスを使うことでできます。
実際、私は、そういう処理を現在させています。
ただ、具体的な内容がわからないので、現時点でコードの提示はできませんが。。。

>また、タスクに入れて
>マクロを自動で起動する事は可能でしょうか?

たしか、できたような・・・曖昧な記憶なので、わかりませんと言っておきます。

【50738】Re:Excel を自動更新できますか?
質問  Rin  - 07/8/13(月) 22:11 -

引用なし
パスワード
   かみちゃん さん:
こんばんは。いつもありがとうございます!

今、Excelをクリックすると
    With ActiveSheet.QueryTables.Add(Connection:="URL;" & strURL, _
      Destination:=Range("A1"))
      .WebSelectionType = xlAllTables   'ページ全体
      .WebFormatting = xlWebFormattingNone '取り込み形式は指定なし
      .Refresh BackgroundQuery:=False
    End With
が起動してSheetに貼りつけるようになっています

【50739】Re:Excel を自動更新できますか?
発言  かみちゃん E-MAIL  - 07/8/13(月) 22:22 -

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

>    With ActiveSheet.QueryTables.Add(Connection:="URL;" & strURL, _
>      Destination:=Range("A1"))
>      .WebSelectionType = xlAllTables   'ページ全体
>      .WebFormatting = xlWebFormattingNone '取り込み形式は指定なし
>      .Refresh BackgroundQuery:=False
>    End With
>が起動してSheetに貼りつけるようになっています

Webクエリを
.RefreshPeriod = 1
などで、「定期的に更新する」(この例では1分間隔)タイミングを捉えることで
いいでしょうか?
それとも、内容が更新されたらという意味でしょうか?
後者の場合は、内容の比較が必要なので、大掛かりになるのではないかと思います。

【50740】Re:Excel を自動更新できますか?
発言  かみちゃん E-MAIL  - 07/8/13(月) 22:44 -

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

>Webクエリを
>.RefreshPeriod = 1
>などで、「定期的に更新する」(この例では1分間隔)タイミングを捉えることで
>いいでしょうか?

この件であれば、私は、以下のようにしています。

'■標準モジュール
Private wbes() As Class1

Sub Macro1()
 Dim strURL As String
 ReDim wbes(1)
 
 Set wbes(0) = New Class1
 
 '(xxxxは、httpを半角にします)
 strURL = "xxxx://www.vbalab.net/vbaqa/c-board.cgi?id=excel"

 With ActiveSheet.QueryTables.Add(Connection:="URL;" & strURL, _
  Destination:=Range("A1"))
  .WebSelectionType = xlAllTables   'ページ全体
  .WebFormatting = xlWebFormattingNone '取り込み形式は指定なし
  .RefreshPeriod = 1 '★1分間隔で更新する
  .Refresh BackgroundQuery:=False
 End With
 Set wbes(0).wq = ActiveSheet.QueryTables(1)
End Sub

'起動したいマクロ名
Sub Macro1_1(ByVal w As Excel.Worksheet)
 MsgBox "Macro1_1が起動しました"
End Sub

'■クラスモジュール モジュール名 Class1
Private WithEvents wb As Excel.QueryTable

Property Set wq(ByVal tmp As Excel.QueryTable)
 Set wb = tmp
End Property

Private Sub wb_AfterRefresh(ByVal Success As Boolean)
 If Success Then
  Call Macro1_1(wb.ResultRange.Worksheet) '起動したいマクロ名
 End If
End Sub

【50741】Re:Excel を自動更新できますか?
お礼  Rin  - 07/8/13(月) 23:32 -

引用なし
パスワード
   かみちゃんさん
丁寧な回答、本当に有難うございました。
明日になりますが
試してみます。

本当に有難うございました!!!

【50770】Re:Excel を自動更新できますか?
質問  Rin  - 07/8/14(火) 21:38 -

引用なし
パスワード
   こんばんは。
かみちゃんさん、有難うございました。

やはり
Webの内容が更新されたらすぐに
Excelも更新させたいのですが。。。

大掛かりな作業になる事、承知しております。

Webが更新されたら
Excelも更新させる方法を教えて頂けないでしょうか

宜しくお願いします。

【50771】Re:Excel を自動更新できますか?
発言  かみちゃん E-MAIL  - 07/8/14(火) 21:46 -

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

>やはり
>Webの内容が更新されたらすぐに
>Excelも更新させたいのですが。。。
>
>大掛かりな作業になる事、承知しております。
>
>Webが更新されたら
>Excelも更新させる方法を教えて頂けないでしょうか

意味がわかりません。
Webクエリを使うのですよね?
「定期的に更新する」にチェックをつけて更新間隔を設定します。
Webが更新されたら、というより、一定の間隔でExcelシートを更新します。
Webが更新されていなくても、シートは更新されますが、何か特殊なことをして
いない限り、同じ内容で更新されます。

定期的に更新されるタイミングでマクロを起動したいならば、
#50740で紹介した方法ではいけないのですか?

Webが更新されていなかったら、Excelシートは更新したくないということでしょうか?
Web更新されていてもいなくても、Excelシートを定期的に更新するのではいけない
のでしょうか?

どうしても更新されたかどうかをチェックしたいならば、更新直後に別シートに
コピーしておき、次に「定期的に更新」されたときに、そのコピーしたシートと
の比較をすればできるような気がします。

意味がわからないので、具体的なコードは、アドバイスができません。

【50773】Re:Excel を自動更新できますか?
質問  Rin  - 07/8/14(火) 22:01 -

引用なし
パスワード
   説明不足で申し訳ありませんでした。

Webクエリを使い
あるWebの内容が更新されたら
ExcelマクロでExcelシートにその内容を反映させたいのです。

>「定期的に更新する」にチェックをつけて更新間隔を設定します。

無知で申し訳ありません。
「定期的に更新する」項目は
どこにあるのでしょうか?

>Webが更新されていなかったら、Excelシートは更新したくないということでしょうか?

はい。その通りです。

何度も、何度も
申し訳ありませんが
宜しくお願い致します。

【50774】Re:Excel を自動更新できますか?
発言  かみちゃん  - 07/8/14(火) 22:13 -

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

> Webクエリを使い
> あるWebの内容が更新されたら
> ExcelマクロでExcelシートにその内容を反映させたいのです。

もう一度お伺いします。
#50740で提示したコードでは、まずいのでしょうか?
そこにすべて盛り込まれていると思いますが?

>>「定期的に更新する」にチェックをつけて更新間隔を設定します。
>
>無知で申し訳ありません。
>「定期的に更新する」項目は
>どこにあるのでしょうか?

「新しいWebクエリ」のプロパティの「外部データ範囲のプロパティ」
にあります。
http://www.fujicom.co.jp/salon/it_info/07webquery/webquery.html

>>Webが更新されていなかったら、Excelシートは更新したくないということでしょうか?
>
>はい。その通りです。

ですから、Webが更新されていなくても、「定期的に更新する」にチェックを
つけておくと、Excelシートは、「定期的に更新」されます。
ただし、Webが更新されていないわけですから、Excelに取り込まれても、その内容
は、直前のものと同じになるかと思いますが、わかりづらいですか?

【50775】Re:Excel を自動更新できますか?
お礼  Rin  - 07/8/14(火) 22:24 -

引用なし
パスワード
   いろいろとご迷惑をお掛けして申し訳ありませんでした。
もっと勉強します。

本当に有難うございました。

【50776】Re:Excel を自動更新できますか?
発言  かみちゃん  - 07/8/14(火) 22:38 -

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

>いろいろとご迷惑をお掛けして申し訳ありませんでした。
>もっと勉強します。

あれ?それは別にいいのですが、
結局、理解できたのか、理解できていなくても、解決できたのかできなかったのか
それが知りたいのですが・・・
もう見ていないでしょうか?

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