• ベストアンサー

ブック間参照しながら3つ以上の条件書式

Book1、Book2があり Book1のA1が"AAA"ならBook2のA1を赤く網掛け Book1のA1が"BBB"ならBook2のA1を青く網掛け Book1のA1が"CCC"ならBook2のA1を黄色く網掛け Book1のA1が"DDD"ならBook2のA1を黒く網掛け Book1のA1が""ならBook2のA1の網掛け無し これを列1~列100の間で可能にするマクロを教えてください。 よろしくお願いします。 エクセルは2003、OSはXPです。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

VBAご理解いただけるでしょうか。 基本の部分だけですが Book1,Book2とも開いているとして Book2の標準モジュールに Sub Macro1() For i = 1 To 100 Select Case Workbooks("Book1").Sheets("Sheet1").Cells(i, 1).Value Case "AAA" Cells(i, 1).Interior.ColorIndex = 3 Case "BBB" Cells(i, 1).Interior.ColorIndex = 41 Case "CCC" Cells(i, 1).Interior.ColorIndex = 6 Case "DDD" Cells(i, 1).Interior.ColorIndex = 1 Case Else Cells(i, 1).Interior.ColorIndex = xlNone End Select Next End Sub をコピペして実行 手抜きでも申し訳ありません。

nagoya-1
質問者

補足

さっそくのご回答ありがとうございます。 サンプルをつくり、試してみたところ、無事に動作確認できました。 ところが、実際の運用状況では、両ブックともに開いた状態にすることが、少し困難でした。 両ブックはWebDAV共有ドライブの同じフォルダ内にあるのですが ブック1は入力専用データとして使用、 ブック2は管理者がブック1のデータを参照しながら、別の入力作業をしています。 ブック1はWebDAV環境の都合で共有させられませんので、ブック2で参照するためにブック1を開いてしまうと、当然ブック1に新たな入力をしようと別の人が開くと「読み取り専用」となってしまいます。 これを回避したいのですが、方法はあるのでしょうか?

その他の回答 (1)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

>ブック1は入力専用データとして使用、 >ブック2は管理者がブック1のデータを参照しながら、別の入力作業をしています。 例えば Book1を 読み取り専用 で開く A列をコピイ Book2の別シートにでも貼り付け Book1を閉じる を最初に追加してみてはいかがでしょうか コードはマクロの記録で取得できそうです試してみてください。 Select Case Workbooks("Book1").Sheets("Sheet1").Cells(i, 1).Value を Select Case Sheets("Sheet2").Cells(i, 1).Value とかに変更すると大丈夫でしょう。

nagoya-1
質問者

お礼

自分なりに調べてみたら、できました。 おかげさまで希望の動作を実現できました。 ありがとうございます。

nagoya-1
質問者

補足

ご回答ありがとうございます。 マクロの自動記録を試して見ました。 しかし、A列のコピーからブックを閉じるところしか記録されませんでした。 ブックを開く部分はどうやって記録するんでしょうか?

関連するQ&A