アプリ版:「スタンプのみでお礼する」機能のリリースについて

データセル縦20×横31の表が2つ、上下に並んでいます。
一方の表(A)のセルに3~20までの数字を入力すると、もう一方の表(B)の、場所が対応したセルに、Aの番号をカラーパレットの番号とした色をつけたいのです。
縦は氏名、横は日付で、グループ編成の色付スケジュール表を作るのが目的です。
自動更新、または、Aに数字を入力後F9による手動更新、いずれかの方法によるVBAを考えています。
VBA初心者のため、手がかりを教えていただきたいと思います。宜しくお願いします。

A 回答 (1件)

あくまでも手がかりということで。

宜しくお願いします。
まず目的はセルに色をつけるということですので、マクロの記録を開始して、B表の任意のセルにセルの書式設定→パターンで色付けします。これで記録されたマクロはセル選択の部分と、色付けの部分でこれは後に使います。
次に入力を契機に走らせるVBAはワークシートのChangeイベントを使います。具体的にはVBEを開いてプロジェクトエクスプローラの当該シートをWクリックするとシートのイベントの窓が開くので左上の小窓の(General)という所をWorksheetに切り替え、右上の小窓でChangeを選びます。これで表示される
Sub Worksheet_Change
が、このシートに入力される都度呼び出されます。Targetは入力されたセルです。
で、この中にまず Target.Rowと Target.ColumnがA表の中であるかどうかを判定するIF文を設けます。
範囲内なら先ほど記録したもののうちセル選択をTarget.Offset()を使い必要なだけ(A表からB表の位置の差)ずらせたセルを選び、色付けにはTarget.Valueを使うという形になるかと。
    • good
    • 0
この回答へのお礼

yokoyamaさん、

ご回答有難うございました。
実は、自分で難しく考えすぎていて、コロンブスの卵のような方法で解決できました。

(1)テーブル処理で、A表からB表に色をつけるマクロを作成する。
Cells(m, n).Offset(x, 0).Interior.ColorIndex = ・・・
を使いました。
(2)表に、フォームツールバーからコマンドボタンを作成する。
(3)コマンドボタンに、(1)のマクロを登録する。

後は、コマンドボタンをクリックすることで、無事にB表に色を付けることができました。

大変勉強になりました。
改めて御礼申し上げます。

お礼日時:2006/08/21 13:25

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