Excel VBA質問箱 IV

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

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


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

【68512】Excelを2つ起動してセルを参照する方法 hoully 11/3/12(土) 17:48 質問[未読]
【68516】Re:Excelを2つ起動してセルを参照する方法 SK63 11/3/13(日) 10:27 発言[未読]
【68517】Re:Excelを2つ起動してセルを参照する方法 SK63 11/3/13(日) 10:50 発言[未読]
【68519】Re:Excelを2つ起動してセルを参照する方法 hoully 11/3/13(日) 16:52 お礼[未読]
【68520】Re:Excelを2つ起動してセルを参照する方法 SK63 11/3/13(日) 17:35 発言[未読]
【68523】Re:Excelを2つ起動してセルを参照する方法 hoully 11/3/14(月) 10:11 お礼[未読]

【68512】Excelを2つ起動してセルを参照する方法
質問  hoully  - 11/3/12(土) 17:48 -

引用なし
パスワード
   ご質問させていただきます。
Excel2007を2つ起動します(あえて2つ起動する必要があります)。1つ目のExcel2007をExcel(1)と呼び、2つ目のExcel2007をExcel(2)と呼ぶことにします。Excel(1)で開くファイル名は「板とチャート」で、Excel(2)で開くファイル名は「ティック」です。Excel(1)とExcel(2)は同一のデータベンダーとDDE接続しており、リアルタイムでデータが更新されます。それぞれ受信したデータをVBAやワークシート関数で加工してシートに表示しています。
今回やりたいことは、Excel(2)のQ1,Q2,Q3,Q4,Q5,Q6セルのそれぞれの値をExcel(1)のC5,C13,C21,C29,C37,C45に表示させたいのです。なお、Excel(2)のQ1〜Q6セルの値はcalculateイベントで1秒間に複数回更新されます。
Excel(1)上でワークシート関数のindexを使えば良いのかと思ったのですが、Excel(2)を参照する方法がわかりませんでした。
どのようにすれば良いのか全くわかりません。
どなたか教えていただけないでしょうか?
よろしくお願いいたします。
なお、私はExcelもVBAも初心者で、非常に単純なプロシージャを作るにも本やネットを参照しなければ作れないレベルです。
よろしくお願いいたします。

【68516】Re:Excelを2つ起動してセルを参照する方...
発言  SK63  - 11/3/13(日) 10:27 -

引用なし
パスワード
   ▼hoully さん:
コンニチハ、、

私もexcelを使って自動売買していますので
なんとなくやりたいことは「理解できます、

こんな感じですか。
book名とシート名を指定してやります。
後は、RRRRの用にすればいろいろ出来ます。
指定をしないと、アクティブなシートにRangeやCellsは指定に成ります


Public WBK1 As Workbook, WBK2 As Workbook, WBK3 As Workbook
Public SH1 As Worksheet, SH2 As Worksheet, SH3 As Worksheet
public strfile as string

Sub 初期化()

Set WBK1 = ThisWorkbook   ' 自ブック
Set SH1 = WBK1.Worksheets("板とチャート")

strfile = ThisWorkbook.Path & "\" & "ティック.xls"
Workbooks.Open strfile
Set WBK3 = ActiveWorkbook
Set ShH2= WBK3.Worksheets(1)

end sub

SUB RRRR

sub SH1.range("A1")=SH2.RANGE(A1")

END SUB

【68517】Re:Excelを2つ起動してセルを参照する方...
発言  SK63  - 11/3/13(日) 10:50 -

引用なし
パスワード
   ▼SK63 さん:
>▼hoully さん:
追加です、

初期化の後にdを実行するとOKです、
ただし、実行するとイベントが発生しますので、
必要におおじてイベントオン、オフを実行してください

>Public WBK1 As Workbook, WBK2 As Workbook, WBK3 As Workbook
>Public SH1 As Worksheet, SH2 As Worksheet, SH3 As Worksheet
>public strfile as string
>
>Sub 初期化()
>
>Set WBK1 = ThisWorkbook   ' 自ブック
>Set SH1 = WBK1.Worksheets("板とチャート")
>
>strfile = ThisWorkbook.Path & "\" & "ティック.xls"
> Workbooks.Open strfile
> Set WBK3 = ActiveWorkbook
> Set ShH2= WBK3.Worksheets(1)
>
>end sub

Sub d()

Dim Z As Variant
Dim GYO As Integer
Dim i As Integer

i = 1
Z = SH2.Cells(1, 17).Resize(6, 1).Value

For GYO = 5 To 45 Step 8
SH1.Cells(GYO, 3) = Z(i, 1)
i = i + 1
Next GYO

End Sub

Sub イベントオン()
  Application.EnableEvents = True  
  Application.ScreenUpdating = True’画面更新オン
End Sub

Sub イベントオフ()
  Application.EnableEvents = False
  Application.ScreenUpdating = False
End Sub

【68519】Re:Excelを2つ起動してセルを参照する方...
お礼  hoully  - 11/3/13(日) 16:52 -

引用なし
パスワード
   ▼SK63 さん:

ご回答ありがとうございます。
大変申し訳ございません。私の説明不足でした。
Excel2007自体を2つ立ち上げる必要があるのです。これは必須です。
SK63様から教えていただいた方法は1つのExcel上に2つのブックを開く方法ですよね?確かにSK63様から教えたいただいた方法で”板とチャート”上のブックから”ティック”のブックを開くことができました。
おぉ!と思い感激しました。
しかし私がやりたいことは、Excel自体を2つ立ち上げて作業する事であり、1つのExcel上で2つのブックを操作することではないのです。
もう少し具体的に言いますと、1枚目のモニターにはExcel(1)を起動し、2枚目のモニターにはExcel(2)を起動し、Excel(1)上にExcel(2)のセルの値を表示させたいのです。1枚目のモニターも2枚目のモニターも同一のPCに接続されています。しかも、Excel(2)のデータはリアルタイムで更新されており、その更新をExcel(1)上でも即座に反映させたいのです。
本当に、言葉足らずで申し訳ありませんでした。
ご回答いただけ事に感謝しております。

【68520】Re:Excelを2つ起動してセルを参照する方...
発言  SK63  - 11/3/13(日) 17:35 -

引用なし
パスワード
   ▼hoully さん:
>▼SK63 さん:

Dim xlApp As Application
Set xlApp = GetObject(ファイルフルパス).Application

で別プロセスの Excel で開かれていても Application オブジェクト
は参照できますので、シート名を指定すれば出来るはずですが、動作確認は
していません。


>
>ご回答ありがとうございます。
>大変申し訳ございません。私の説明不足でした。
>Excel2007自体を2つ立ち上げる必要があるのです。これは必須です。
>SK63様から教えていただいた方法は1つのExcel上に2つのブックを開く方法ですよね?確かにSK63様から教えたいただいた方法で”板とチャート”上のブックから”ティック”のブックを開くことができました。
>おぉ!と思い感激しました。
>しかし私がやりたいことは、Excel自体を2つ立ち上げて作業する事であり、1つのExcel上で2つのブックを操作することではないのです。
>もう少し具体的に言いますと、1枚目のモニターにはExcel(1)を起動し、2枚目のモニターにはExcel(2)を起動し、Excel(1)上にExcel(2)のセルの値を表示させたいのです。1枚目のモニターも2枚目のモニターも同一のPCに接続されています。しかも、Excel(2)のデータはリアルタイムで更新されており、その更新をExcel(1)上でも即座に反映させたいのです。
>本当に、言葉足らずで申し訳ありませんでした。
>ご回答いただけ事に感謝しております。

【68523】Re:Excelを2つ起動してセルを参照する方...
お礼  hoully E-MAIL  - 11/3/14(月) 10:11 -

引用なし
パスワード
   ▼SK63 さん:

再びのご回答ありがとうございます。
SK63様から教えていただいてから自分でも調べてみたのですが、getobjectは高度な内容ですね。
最初に教えていただいたプロシージャにどのように組み込めば良いのか見当もつきませんが、勉強して何とか形にしたいと思います。
このたびは、本当にありがとうございました。

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