• ベストアンサー

Excelの外部参照と書式設定について。

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

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

>願わくば、bookを起動時に自動でモジュールが実行される様にしたく現在調査中です。 この補足を見て気が付きました。 回答時に、次の3行を書くのを忘れていました。失礼しました。起動時に自動で動きます。 ThisWorkBookのコードウインドウに貼り付けます。 Private Sub Workbook_Open()   getWorkBook1 End Sub

ninja972
質問者

お礼

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

その他の回答 (2)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

>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

ninja972
質問者

お礼

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

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

こんにちは。 無理だと思います。 VBAでやっても、結構面倒だと思います。

ninja972
質問者

お礼

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

関連するQ&A

  • エクセル 関数の外部参照について

    お世話になります。 エクセルに、 =IF(OR($A7="",C$6="",C$3=""),"",OFFSET([○○.xls]△△!$A$1,MATCH($A7,[○○.xls]△△!$A:$A,0)-1,MATCH(C$4,[○○.xls]△△!$4:$4,0)-1)*□□!C7) このような外部参照を含む計算式を組みました。 しかし、参照先のブック(○○.xls)を開いていないと エラーになってしまいます。 参照先のブック(○○.xls)を開かなくても計算させる方法はありませんか? よろしくお願いします。

  • openOffice Calcで外部ファイルの参照

    MicrosoftOfficeからOpenOfficeへ移行しようと考え、色々とテストしているのですが、どうしても分からない箇所があるので質問します。 例えば、エクセルで、Book1.xlsとBook2.xlsがあって、Book2のA1をBook1に「=[Book1]Sheet1!$A$1」というように参照を設定しているとします。Book1.xlsとBook2.xlsの両方を開いた状態で、Book1のA1の値を変更すると、Book2のA1も自動的に変わりますが、OpenOffice Calcでは、いったん参照先を保存して、参照元のファイルで「編集→リンク」を開いて「更新」を押さなければ変わらないように思います。これを自動で更新する方法はないのでしょうか? 「リンク」の画面の下には「更新:自動、手動」というラジオボタンがあるのですが、使えません。これを「自動」に設定できれば可能だと思うのですが。 よろしくお願いします。

  • Excelの書式設定に関して

    Excelの条件付き書式でA列の値と(D:W)の値が等しければ黄色になるように設定してます。 下記のようにしています。 =AND(D4=$A4,$A4<>"") A列の値が0のとき空白のセルも黄色になりますので空白は空白のままにしたいです。 どのようにすればよろしいでしょうか。 よろしくお願いいたします。

  • エクセル2003の条件付き書式設定についての質問です。

    エクセル2003の条件付き書式設定についての質問です。 A列に人の名前、B列には1,2,3の区分けの番号を入力します。B列の値が1であれば該当するA列のセルを黄色、B列の値が2であれば該当するA列のセルを青とかにする方法を教えて下さい。 B列が1であれば、そのセルを黄色とかにすることは条件付き書式でできますが、B列の値を参照してその結果に基づいてA列に条件付き書式を設定する方法が知りたいということなのですが。

  • Excelで外部book参照の参照先を変える

    ローカル内の外部のbookを参照先としているのですが、 [book]sheet!A1 のようになっている参照先を ネットワーク内に移動したため、 \\network\sanshou\[book]sheet!A1 のように参照のための式を全部置換しようとしたのですが 1分に10個程度しか置換されず、たまらず強制終了してしまいました。 通常の置換はそこまで時間はかからないのですが、何かスムーズに置換するための アドバイス等いただければと思います。

  • エクセル 条件付き書式で複数設定する方法を教えてください。

    こんにちは。いつも大変お世話になっています。 エクセルの条件付き書式の1つめに =mod(row(),2)=0 と入力して、1行おきにセルの色を黄色に変えるようにしました。 次に条件2つめとして、=a1 だったら、文字色を赤に変えるようにしました。 すると、条件1で設定した、セルの色が変わらない方ならば、=a1の場合、文字が変わるのですが、セルの色が黄色だと、文字色は黒のままなのです。 これを、1行おきにセルは黄色で、なおかつ=a1の時は文字を赤くするにはどのようにしたら良いのでしょうか? どうぞよろしくお願いします。

  • Excelの条件付き書式の設定で困っています。

    Excelの条件付き書式で、 思った範囲にセルの塗りつぶしを設定出来ず困っています。 現在、貼付の画像のような形の表を作っています。 休日一覧に記載されている日付と同じ日付があれば、 左表の日付と曜日欄を赤色で塗りつぶし、 更にその下の枠内を黄色で塗りつぶしたいと考えています。 しかし現状では、貼付画像のように、 塗りつぶされないセルが生じています。 現在、条件付き書式で設定している数式は、 赤色の塗りつぶしと黄色の塗りつぶし共に、 =MATCH(A$1,$Q$2:$Q$13,0)>0 を入力しています。そして、 赤色の適用先…$A$1:$O$2 黄色の適用先…$A$3:$O$5 としています。 どうすればうまくセルを黄色で塗りつぶすことが出来るのかわからず 困り果てて書き込み致しました。 Excel初心者のため、とんちんかんな数式や質問かもしれず申し訳ありませんが、 皆様、ご教示くださいますよう、何卒よろしくお願い致します。

  • Excelでブックをまたいでシートをコピーした時に、元のブックを参照させない方法

    Excelでブックをまたいでシートをコピーした時に、 元のブックを参照しないようにしたいです。 BOOK_AというブックのシートにBOOK_Aのブック内のセルを参照する式が ある場合、そのシートをBOOK_Bというブックにコピーすると、 式の中の参照先のセルを示す部分に自動的に[BOOK_A]が追加されて、 BOOK_Aを参照してしまいます。 ここではBOOK_B内のシートを参照してほしいので、そのままの式で コピーしたいのですが、可能でしょうか? よろしくお願いいたします。

  • 外部ブック参照が#REF!になってしまう

    二つのブックがあり、一つには参照するデータが入っています。それをもう一つのブックから =INDIRECT(ADDRESS(5+C4,13,,,"[A.xls]"&$A2)) と参照しています。 このとき、A.xlsを開いていれば正しく値を参照するのですが、A.xlsを閉じた状態だと#REF!になり値を参照してくれません。 A.xlsを開かずに、自動的に外部ブックの値を参照することはできないのでしょうか。 よろしくお願いいたします。

  • Excelの外部参照

    外部参照の数式→〔Book1.xls〕Sheet1!A1 の最後のA1の数字の部分を変えていきたいのです 複数のセルをいっぺんに変えたいのですがどうすれば良いのでしょうか? いちいち手で変えていくのにはウンザリです・・・ どうか助けてください

専門家に質問してみよう