Excel VBA質問箱 IV

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

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


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

【19362】VBからVBAのメソッドをコールしたい ハル 04/10/29(金) 11:53 質問[未読]
【19363】Re:VBからVBAのメソッドをコールしたい IROC 04/10/29(金) 11:56 回答[未読]
【19365】Re:VBからVBAのメソッドをコールしたい ハル 04/10/29(金) 13:13 質問[未読]
【19368】Re:VBからVBAのメソッドをコールしたい ごんぼほり 04/10/29(金) 14:36 回答[未読]
【19369】Re:VBからVBAのメソッドをコールしたい ハル 04/10/29(金) 14:55 質問[未読]
【19370】Re:VBからVBAのメソッドをコールしたい ごんぼほり 04/10/29(金) 15:03 回答[未読]
【19372】Re:VBからVBAのメソッドをコールしたい ハル 04/10/29(金) 15:22 質問[未読]
【19373】Re:VBからVBAのメソッドをコールしたい IROC 04/10/29(金) 15:36 回答[未読]
【19376】Re:VBからVBAのメソッドをコールしたい ハル 04/10/29(金) 16:00 質問[未読]
【19380】Re:VBからVBAのメソッドをコールしたい ichinose 04/10/29(金) 17:46 発言[未読]
【19383】Re:VBからVBAのメソッドをコールしたい IROC 04/10/29(金) 18:03 回答[未読]
【19384】Re:VBからVBAのメソッドをコールしたい ichinose 04/10/29(金) 18:09 発言[未読]
【19385】Re:VBからVBAのメソッドをコールしたい IROC 04/10/29(金) 18:17 回答[未読]
【19414】Re:VBからVBAのメソッドをコールしたい ハル 04/11/1(月) 9:22 お礼[未読]

【19362】VBからVBAのメソッドをコールしたい
質問  ハル  - 04/10/29(金) 11:53 -

引用なし
パスワード
   Excel・VBAは全くの初心者ハルです。

VB(Ver6)からExcel(2003)のVBAメソッドをコールしたいのですが、VBAのどこにそのメソッドを追記して、どのようにVBからコールすればよいのかわかりません。

Excelを起動(Createobject)してして、ブックを開く(Open)ところまではできています。

参考サイトでもかまいませんのでご教授をよろしくお願いします。

【19363】Re:VBからVBAのメソッドをコールしたい
回答  IROC  - 04/10/29(金) 11:56 -

引用なし
パスワード
   EXCELのopenイベントでマクロを実行しては如何でしょうか?

【19365】Re:VBからVBAのメソッドをコールしたい
質問  ハル  - 04/10/29(金) 13:13 -

引用なし
パスワード
   ▼IROC さん:
早速ありがとうございます。

Workbook_Open()でのマクロコールは、現在実施しています。
説明不足でした。申し訳ございません。

VBのタイマーイベントを利用して、定周期でVBAのマクロをコールをしたいと考えております。

よろしくお願いします。

【19368】Re:VBからVBAのメソッドをコールしたい
回答  ごんぼほり  - 04/10/29(金) 14:36 -

引用なし
パスワード
   こんにちは。

「メソッド」ですよね?

メソッドということは、なんらかのオブジェクトがあって、
そのオブジェクトを指定して、
object.hogehoge
というような記述になります。

【19369】Re:VBからVBAのメソッドをコールしたい
質問  ハル  - 04/10/29(金) 14:55 -

引用なし
パスワード
   ▼ごんぼほり さん:
ありがとうございます。私もおっしゃるとおりのことができると思っております。
ただ、このobjectは何を指して、このhogehogeはどこに記述すれば良いのかがわかりません。

VBソース抜粋
 Dim xlAPP As Object
 Dim xlBOOK As Object
 Set xlAPP = CreateObject("Excel.Application")
 Set xlBOOK = xlAPP.Workbooks.Open("d:\test1.xls")

objectとは、上記ソースでいうxlBookで良いのでしょうか?
hogehoeメソッドは、標準モジュール,クラスモジュール,etcのどこに記述すれば良いのでしょうか?
よろしくお願いしいます。


>メソッドということは、なんらかのオブジェクトがあって、
>そのオブジェクトを指定して、
>object.hogehoge
>というような記述になります。

【19370】Re:VBからVBAのメソッドをコールしたい
回答  ごんぼほり  - 04/10/29(金) 15:03 -

引用なし
パスワード
   こんにちは。

>objectとは、上記ソースでいうxlBookで良いのでしょうか?
知りませんし、わかりません。
Bookに対するメソッドだったらWorkBookオブジェクトですし、
シートに対するオブジェクトだったらWorkSheetオブジェクトでしょうし、
セルに対するメソッドだったらRangeオブジェクトでしょう。
それは、ハルさんがどのメソッドを使いたいかによって違いますので、
私には知りようがありません。

>hogehoeメソッドは、標準モジュール,クラスモジュール,etcのどこに記述すれば良いのでしょうか?

実行可能な場所ならどこでもいいです。
としかいいようがありません。

これ以上のアドバイスが必要なのであれば、
ハルさんがなにをしようとしているのか、もっと情報が必要です。

【19372】Re:VBからVBAのメソッドをコールしたい
質問  ハル  - 04/10/29(金) 15:22 -

引用なし
パスワード
   ▼ごんぼほり さん:
ありがとうございます。

>これ以上のアドバイスが必要なのであれば、
>ハルさんがなにをしようとしているのか、もっと情報が必要です。

ごもっともなご意見でございます・・・。
コールしたいメソッドの概要は、

「シートに貼り付けているwebクエリを"更新"して、1セルの内容をテキストファイルに保存する(時々刻々変わるweb情報をテキストファイルに保存する)」

というものです。
よろしくお願いします。

【19373】Re:VBからVBAのメソッドをコールしたい
回答  IROC  - 04/10/29(金) 15:36 -

引用なし
パスワード
   メソッドではなく、ただのマクロ・・?

【19376】Re:VBからVBAのメソッドをコールしたい
質問  ハル  - 04/10/29(金) 16:00 -

引用なし
パスワード
   ▼IROC さん:
>メソッドではなく、ただのマクロ・・?

メソッドとマクロの定義が、もひとつ分かっていません。すみません・・・。
メソッドは、シートやセルに対して何かを行う時に使うもので、私のしようとしていることは、マクロになるのでしょうか?同じようなものだと思っていました。(>_<)
下記ソースのModule1.Macro1を、どうにかしてVBからコールできないのでしょうか?

<ThisWorkbook>
Public Sub Workbook_Open()
  
  iFlg = 0
  strBakDat = "-1"
  
  Sheets("Sheet1").Select
  Range("A1").Select
  Module1.Macro1
End Sub
Public iFlg As Integer
Public strBakDat As String * 16


<Module1のソース>
Public Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2004/10/26 ユーザー名 : ?????
'

'
  Dim strDat As String * 16
  
  'webクエリ更新
  Selection.QueryTable.Refresh BackgroundQuery:=False
  
  strDat = Cells(2, 3).Value
  
  '値が変わっていれば、テキストファイルに保存
  If strDat <> strBakDat Then
    strBakDat = strDat
    Open "d:\data1.csv" For Output As #1
    Write #1, strDat
    Close #1
  End If
End Sub


よろしくお願いします。

【19380】Re:VBからVBAのメソッドをコールしたい
発言  ichinose  - 04/10/29(金) 17:46 -

引用なし
パスワード
   ▼ハル さん、皆さん、こんにちは。
VB側で、
set app =createobject("excel.application")
with app
  .visible=true
  set bk=app.workbooks.open("D:\My Documents\callingtest.xls")
'                  ↑オープンするExcelブック
  end with
こんなコードでインスタンスを作成しているのですよね?

だとしたら、

app.run "callingtest.xls!module1.macro1"

で呼び出せます。


Macro1というプロシジャーが標準モジュールではなく、Thisworkbookにコピーされていれば、

bk.macro1

でOKです(私は、これはよく使います)。

確認して下さい。


>
><ThisWorkbook>
>Public Sub Workbook_Open()
>  
>  iFlg = 0
>  strBakDat = "-1"
>  
>  Sheets("Sheet1").Select
>  Range("A1").Select
>  Module1.Macro1
>End Sub
>Public iFlg As Integer
>Public strBakDat As String * 16
>
>
><Module1のソース>
>Public Sub Macro1()
>'
>' Macro1 Macro
>' マクロ記録日 : 2004/10/26 ユーザー名 : ?????
>'
>
>'
>  Dim strDat As String * 16
>  
>  'webクエリ更新
>  Selection.QueryTable.Refresh BackgroundQuery:=False
>  
>  strDat = Cells(2, 3).Value
>  
>  '値が変わっていれば、テキストファイルに保存
>  If strDat <> strBakDat Then
>    strBakDat = strDat
>    Open "d:\data1.csv" For Output As #1
>    Write #1, strDat
>    Close #1
>  End If
>End Sub
>
>
>よろしくお願いします。

【19383】Re:VBからVBAのメソッドをコールしたい
回答  IROC  - 04/10/29(金) 18:03 -

引用なし
パスワード
   >Macro1というプロシジャーが標準モジュールではなく、
>Thisworkbookにコピーされていれば、
>bk.macro1

ichinose さん
ちょっとお伺いしても宜しいでしょうか?
Thisworkbookは、クラスモジュールなので
メソッドのような扱いができるということなのでしょうか?
はじめて見た使い方なので、おどろいています。

【19384】Re:VBからVBAのメソッドをコールしたい
発言  ichinose  - 04/10/29(金) 18:09 -

引用なし
パスワード
   ▼IROC さん:
こんばんは。

>ichinose さん
>ちょっとお伺いしても宜しいでしょうか?
>Thisworkbookは、クラスモジュールなので
>メソッドのような扱いができるということなのでしょうか?
>はじめて見た使い方なので、おどろいています。
Workbookって、Excelの既成のオブジェクトですよね?
このモジュール(つまり、Thisworkbook)に
独自変数を追加すれば、プロパティ、独自プロシジャーを追加すれば、メソッド
だと解釈しています。

例えば、Thisworkbookモジュールに

Sub test()
 msgbox "ok"
end sub

と言うコードを記述し、

標準モジュールに

Sub main()
 thisworkbook.test
end sub

で、Thisworkbook.をご自分でキーパンチした場合、メンバリストの中に「test」が
入っていますよね?

これの応用だと思いますよ!!

【19385】Re:VBからVBAのメソッドをコールしたい
回答  IROC  - 04/10/29(金) 18:17 -

引用なし
パスワード
   >これの応用だと思いますよ!!
sheetモジュールでも同じようにできますね。
クラスモジュールでメソッドを作ったときと同じように使えるのですね。
とても参考になりました。いや〜勉強になりました。
どうも有り難うございました!! 

【19414】Re:VBからVBAのメソッドをコールしたい
お礼  ハル  - 04/11/1(月) 9:22 -

引用なし
パスワード
   ▼ichinose さん:
お礼が大変遅くなりました。
希望通りの動きが実現できました。(^o^)
本当にありがとうございました。

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