Excel VBA質問箱 IV

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

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


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

【24052】複数のEXCELアプリ間でデータ参照したい miki 05/4/11(月) 4:07 質問[未読]
【24056】Re:複数のEXCELアプリ間でデータ参照したい G-Luck 05/4/11(月) 11:34 発言[未読]
【24061】Re:複数のEXCELアプリ間でデータ参照したい miki 05/4/11(月) 14:36 お礼[未読]

【24052】複数のEXCELアプリ間でデータ参照したい
質問  miki  - 05/4/11(月) 4:07 -

引用なし
パスワード
   お世話になります。
VBA初心者ですが、よろしくお願いいたします。
No.8726(http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=8726;id=excel)あたりで
複数のEXCELアプリに関する記述をみかけたので、過去ログにもあるのかもしれませんが、
検索で見つけられなったので質問させていただきます。

book2.xlsに配置されたボタンを押下するとbook1.xlsのセルを参照するプログラムを作成しました。(下記)
期待通り動作する場合と動作しない場合があります。
動作しない場合は、実行時に下記のエラーメッセージが表示されます。

1.【動作するケース】…1つのEXCELウィンドウで、book1.xlsとbook2.xlsを開いている場合。
2.【動作しないケース】…2つのEXCELウィンドウで、book1.xlsとbook2.xlsを開いている場合。

今回のソフトは、2.の状態で動作させなければならないのですが、
どのようなコードをかけばよいのか、教えてください。

' --- ↓↓↓ VBAのコード ---

> Sub ボタン1_Click()
>
> Dim strCell As String
> strCell = Excel.Application.Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 1).Value
>
> End Sub

' --- ↓↓↓ エラーメッセージ ---

実行時エラー'9':
インデックスが有効範囲にありません。


よろしくお願いいたします。

【24056】Re:複数のEXCELアプリ間でデータ参照した...
発言  G-Luck  - 05/4/11(月) 11:34 -

引用なし
パスワード
   ▼miki さん:
こんなんでどうでしょう。

BookFullPath には、対象ファイルのフルパスを入れてください。
今回の場合、C:\〜〜〜\book1.xls みたいな感じにあると思います。
下記コードでは、自分自身のフルパスが入力されています。

Sub ボタン1_Click()
  Dim App
  Dim BookFullPath As String
  Dim strCell As String
  
  BookFullPath = ThisWorkbook.FullName
    '↑対象ファイルのフルパスに変更が必要
  
  Set App = GetObject(BookFullPath).Application
  strCell = App.Workbooks("book1.xls"). _
          Worksheets("sheet1").Cells(1, 1).Value
  MsgBox strCell
End Sub

【24061】Re:複数のEXCELアプリ間でデータ参照した...
お礼  miki  - 05/4/11(月) 14:36 -

引用なし
パスワード
   こんにちは。
G-Luck さん、ありがとうございました。
うまくいきました。
また、なにかありましたらよろしくお願いいたします。

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