
VLOOKUPを使って、シート1に有るデータベースから
必要なデータを参照して、シート2に表示させています。この時シート1のデータの中には、いくつか
文字の色がついていて 目立つようにしているものがあります。これをVLOOKUPのように、同じくデータベースから参照して、抽出先データに反映させたいのですが、関数では出来ないようで、VBAでコントロールをする必要があるようで、調べたところ下記の様な、質問が過去にあり、
http://oshiete1.goo.ne.jp/kotaeru.php3?q=968962
これを試してみましたが、あまり詳しく書かれていなく、私の解釈で作るとまったく動作しませんでした。
どなたか、わかる方もう少し補足情報をいただけませんか?
よろしくおねがいします。
No.1ベストアンサー
- 回答日時:
どうしてもVBAでというなら僕の回答は読み飛ばしてください。
VLOOKUPと条件付書式でやる方法を思いつきました。
シート1に1列追加し、色付きなら1、色付きじゃなければ空白とします。
で、シート2の方では項目を参照するVLOOKUPの右の列に、先程追加した色付きか否かのフラグ列を参照するVLOOKUPを書きます。
最後に、項目を参照した列を選択して、書式→条件付書式
数式が:=D1=1
(色つきか否かの列がDの場合)
これで、シート1で色付きの項目を参照した場合はシート2でも色つきにはなります。
頑張ってくださいヽ(^。^)ノ
GET.CELLでセル番号を取って、それをVLOOKで参照し、条件書式したらうまくいきました。再計算(F9)をさせないと変更が更新されないので、これを自動でするマクロを入れようと思います。
大変参考になりました。
有難う御座います。
No.4
- 回答日時:
例えば商品テーブルとして、Sheet1 に
E F G
1 番 号 品 名 単 価
2 S10 みかん 100
3 S20 りんご 200
4 S30 ばなな 300
があり、同じくSheet1のA列に番号を入力して、
この商品名テーブルを参照し、B列に品名を表示する場合。
強調の為の色は品名に付けてあるとする。
番号がない場合はOn Errorでこの処理を抜ける。
これはあくまでもワークシート関数を使用する場合であり、またこのような場合ワークシート関数はVLookUpではなくMATCH関数が適しています。
VBEを開き、Sheet1に以下を書くかコピペ。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim R As Long
On Error GoTo JumpSub
If Target.Column = 1 Then
R = WorksheetFunction.Match(Target, Range("E1:E4"), 0)
With Target.Offset(0, 1)
.Value = Range("F" & R).Value
.Font.ColorIndex = Range("F" & R).Font.ColorIndex
End With
End If
JumpSub:
End Sub
上記のコードの場合、MATCHの範囲は、
E1:E4 です。
E2:E4 と勘違いしないように。
また、上記のコードのような場合はApplication.EnableEventは必要ありませんが、大事なことですので、どういうときに必要になるのかはちょと勉強してみてください。
返事おそくなりました。
ご丁寧に解説有難う御座います。
コピペをしてみたのですが、うまく動かなく、
あまり手取り足取り質問するのも申し訳ないので、
今回はもう少し低めのハードルに挑戦します。
有難う御座いました。
No.3
- 回答日時:
上記過去質問の回答者です。
例題ちして、E1:G3に
1東京6
2大阪8
3名古屋22
をいれ、表を作ります。
G列は色コードです。
Sheet1のChangeイベントに
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Application.EnableEvents = False
Target.Offset(0, 1) = WorksheetFunction.VLookup(Target, Range("e1:g3"), 2, False)
Application.EnableEvents = True
Target.Offset(0, 1).Interior.ColorIndex = _
WorksheetFunction.VLookup(Target, Range("e1:g3"), 3, False)
End If
End Sub
をコピーします。
ワークシート1に戻り
A列に1,2,3のどれかを入れると、B列にそれに対応した文字列が入り、B列セルに色がつきます。
但し、VBAが少し判っていただいてないと、頓挫するかも知れない気がします。
(1)Changeイベントのクセ
(2)途中でエラーに成ったとき、標準モジュールの
Sub test01()
Application.EnableEvents = True
End Sub
で普通状態に戻す
(3)本番では
Target.Column = 1の部分の、入力列に合わせた修正
"e1:g3"),の部分の表の大きさ(項目数の多さ)による
修正
などが必要です。
簡単なVBAしかわからなく挫折してしまいました。
ご丁寧に解説有難う御座います。
もう少し力をつけてからVBAに切り替えさせていただきます。お返事おそくなってすみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
EXCELで塗りつぶし色ごとvlookupしたい
Word(ワード)
-
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
ExcelでVLOOKUP
Excel(エクセル)
-
4
エクセルの色も=イコールできますか?
Windows Me・NT・2000
-
5
エクセルでVLOOKUPの結果を含むセルの行色を
Excel(エクセル)
-
6
EXCELのセルや文字色の反映
Excel(エクセル)
-
7
エクセルで色の変更を他のシートに反映させるには
Access(アクセス)
-
8
エクセルのLOOKUPを書式ごと表示させる方法
Excel(エクセル)
-
9
エクセルでVLOOKUPで抽出した文字色が黒になってしまいます。
Excel(エクセル)
-
10
色のリンクは出来ますか?【エクセル】
Access(アクセス)
-
11
excel 参照しているセルに色がついていたら、返すセルにも色もつける
その他(コンピューター・テクノロジー)
-
12
Excelの条件付書式とVlookupを組み合わせて
Excel(エクセル)
-
13
別シートのデータを参照してセルの色を塗り替えたい
Excel(エクセル)
-
14
Excel 書式を関数で判断。
Excel(エクセル)
-
15
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
16
エクセル 別シートへのコピーを,セルの色や太字斜体までやりたい。
Excel(エクセル)
-
17
他シートのある列を検索して一致したらセルに色をつける方法
会計ソフト・業務用ソフト
-
18
Excelで数式内の文字色を一部だけ変更したい
Excel(エクセル)
-
19
エクセルのセルの塗り色も同期させたい
Excel(エクセル)
-
20
Excelのグレーの部分を戻したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
Excelでの並べ替えを全シートま...
-
5
Excel の複数シートの列幅を同...
-
6
ExcelのVlookup関数の制限について
-
7
エクセルの保護で、列の表示や...
-
8
VLOOKアップ関数の結果の...
-
9
エクセルで、チェックボックス...
-
10
スプレッドシートでindexとIMPO...
-
11
SUMPRODUCTにて別シートのデー...
-
12
【VBA】ピボットテーブルを既存...
-
13
Excel 2段組み
-
14
エクセルで、book全体の検索&...
-
15
VBA 複数の列を高速で削除する...
-
16
excel 複数のシートの同じ場所...
-
17
納品日から得意先ごとの請求日...
-
18
エクセルVBAで、ある文字を含ん...
-
19
エクセル 日報売上を月報に展開...
-
20
EXCELで別のシートのデータを参...
おすすめ情報
公式facebook
公式twitter