dポイントプレゼントキャンペーン実施中!

いつもお世話になっております。
Excelの外部参照についてですが、
例えばBook1のA1にBook2のA1が外部参照していたとします
Book1のA1が黄色に塗りつぶしされていたとしたらBook2のA1も
自動的に黄色に塗りつぶしされる様にしたいのです。
”条件付き書式”設定も考慮したのですが、Book1のA1を塗りつぶす条件
は人の判断でその時に応じて変わる為に単純にBook1のA1が黄色なら
Book2のA1も同じ黄色としたいのです。
OSはWindows95,Excelは97を使用しております。

どうか宜しくお願い致します。

A 回答 (3件)

>願わくば、bookを起動時に自動でモジュールが実行される様にしたく現在調査中です。


この補足を見て気が付きました。
回答時に、次の3行を書くのを忘れていました。失礼しました。起動時に自動で動きます。


ThisWorkBookのコードウインドウに貼り付けます。

Private Sub Workbook_Open()
  getWorkBook1
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
これでほぼ完璧になりました。
あとはFor~Nextで参照セルを
コントロールすれば終わりです。
これは自力で何とか出来ますので、がんばります。
貴重なお時間を申し訳ありませんでした。
また何かあった時には宜しくお願い致します。

以上

お礼日時:2002/06/23 12:28

>Book1のA1にBook2のA1が外部参照・・・自動的に黄色に塗りつぶしされる様にしたいのです


とありますが、Book2の立ち上げ時にBook1の内容にあわせる例です。任意の更新も可能でしょう。

やっていることは、参照されているBookを必要なら開いているだけです。質問の主旨にあっているかは自信ありません。Book1、Book2を複数で同時に更新しているような状況は想定していません。

また、Book1、Book2がどのような環境下(ネットワーク等)にあるかも不明なので、PC内でBook1、Book2とも立ち上げ可能な状態でのコード(参考例)です。Excel2000で確認済みですが、Excel97でも問題ないと思われます。

実際は参照するセル等は多いと思いますが、ご参考に。


標準モジュールに貼り付けます。(参照しているBookの標準モジュール)

Sub getWorkBook1()
  Dim myBookName As String 'このBook名(自分)
  Dim sBookPath As String '参照されているBookのパス
  Dim sBookName As String '参照されているBook名
  Dim sBookClosed As Boolean '参照されているBookが閉じていた
    myBookName = ThisWorkbook.Name
    sBookPath = "D:\・・・・\・・・・"  '参照されているBookのパスをセットします
    sBookName = "・・・・.xls"      '参照されているBook名をセットします

  On Error GoTo ErrorHandler

  'A1のパターンを同一にする例
  With Workbooks(sBookName).Worksheets("Sheet1")
    Worksheets("Sheet1").Range("A1").Interior.ColorIndex = _
                      .Range("A1").Interior.ColorIndex
  End With

  '参照されているBookが閉じていたのであれば、ここで閉じる
  If sBookClosed Then Workbooks(sBookName).Close

  Exit Sub

ErrorHandler:
  '参照されているBookが閉じていれば開く
  sBookClosed = True
  Workbooks.Open sBookPath & "\" & sBookName
  Workbooks(myBookName).Activate
  Resume
End Sub
    • good
    • 0
この回答へのお礼

こんにちは。
わざわざコーディングまでして頂いてありがとうございました。
無事97でも動作確認が取れました。大変助かりました。m(__)m
願わくば、bookを起動時に自動でモジュールが実行される様に
したく現在調査中です。
参照する側のbookを多数のエンドユーザに配布する為に配布された
ユーザは単にエクセルを開くだけで、モジュールの実行を意識させ
たくないのです(自分勝手な事を言って申し訳ありません)。
ほとんどVBAの経験が無い為に苦戦しております。
もしアドバイスを願えれば幸いです。

お礼日時:2002/06/23 11:23

こんにちは。



無理だと思います。
VBAでやっても、結構面倒だと思います。
    • good
    • 0
この回答へのお礼

こんにちは。

Excelだけでは無理ですか・・・
どうもありがとうございました。

お礼日時:2002/06/23 11:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!