[[20100526142441]] 『セルに入る文字によって セルの色を変えたい』(素人) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルに入る文字によって セルの色を変えたい』(素人)

 宜しくお願い致します
 D1に 山田建設 と入れたら そのD1の色が 赤で塗りつぶされて
     近藤建設 と入れたら そのD1の色が 緑に塗りつぶされて
         伊藤建設 と入れたら そのD1の色が 青に塗りつぶされて…

 というように 10社に対して 10の色を 決めておいて 
 D1に それらの会社名が入ったら 自動的に D1の塗りつぶしの色が 変わる
 というようにするには どうやったら出来ますでしょうか?

 それと シートが25枚ありますが D1に 会社名が入ったら D1が緑に なれば
 下の そのシートの見出しの 塗りつぶしの色も
 同じく そのシートのD1の 塗りつぶしの色と 同じ色が 入るようには 出来ますでしょうか?

 宜しくお願い致します

 EXLE2003です

[[20050115131721]]
 参考になるかな?
 (x_x)

(素人) ありがとうございます 難しい事が書いてあり あまり 判らなかったのですが (^_^;) とりあえず
 一番上に 書いてあった式を 入れてみたら A1は色が付いたのですが、D1 だったら どうやったらいいのか判らず…
 クマとかが6種類 あったのですが、10種類の場合だと 式のどこを どう直していいのか判りません。
 すいません (^_^;) 
 下の シートの見出しの色 というのは 出来るものなのでしょうか?
 すいません 宜しくお願い致します

 Q&Aラウンジはマルチポスト禁止ですのでこちらに移動したのであれば向こうの方には移動した旨書いて解決済みにしておいてください。

http://www.efcit.co.jp/cgi-bin2/exqalounge.cgi?print+201005/10050063.txt

 (独覚)

(素人) すいません 解決済み にしました m(__)m
 [[20050115131721]]  にあった式で 1を4にしたら D1に出来ました。ありがとうございました
 塗りつぶしの色と、フォントの色を 両方共 指定できるようには 出来ますでしょうか?
 すいませんが 宜しくお願い致します m(__)m

(素人) すみません 教えて頂きたいのですが 作ったファイルを開いたら 警告みたいなのが出ますが
 これは マクロのセキュリティの所を (低)にすればいいのでしょうか? すいませんが 教えて頂けないでしょうか 宜しくお願い致します 

 「マクロが使用できません セキュリティレベルが高に設定されています。またデジタル署名された信頼された証明書がマクロに添付されていません。
 マクロを実行するには セキュリティレベルを下げるか 又は証明機関が発行する証明書を使用して
 マクロに署名するよう作成者に依頼するようにして下さい ただしセキュリティレベルを下げるのは
 推奨しません」

 と出ます。すいませんが 宜しくお願い致します m(__)m

セキュリティレベルを中に設定する人が一番多いと思いますよ

 こんばんは。
見覚えのある会社名が見えたので、おじゃましてみました。

 > D1に それらの会社名が入ったら 自動的に D1の塗りつぶしの色が 変わる
 > そのシートの見出しの 塗りつぶしの色も 同じく
過去ログの川野鮎太郎さんのご回答が、ほぼぴったりですね。
ただ、今回のご質問のケースでは、25シート全てに同じ動作をさせたいのでしょうから、
Worksheet_Changeイベントではなく、Workbook_SheetChangeイベントがよいかと思います。
(川野鮎太郎さんのコードを使わせていただきました。ありがとうございます)

 以下の手順でやってみてください。
(1) どのシートでもよいので、シートタブを右クリックして、コードの表示を左クリック
  →「Microsoft Visual Basic - ファイル名.xls - [Sheet○ (コード)]」
   というタイトルの画面が開く
  ※http://www.excel.studio-kazu.jp/lib/e1nw/e1nw.html の(2)VBAの作成 参照
(2) 出てきた画面の中で、「ThisWorkbook」を探して、その部分をダブルクリック
  →画面のタイトルの右側が、「- [ThisWorkbook (コード)]に変わる
(3) カーソルのある場所に、↓のコードをコピペする
  →これでマクロの設定は終了

 '↓この下から
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim colr As Integer
    '↓複数セルをまとめて変更したら終了
    If Target.Count > 1 Then Exit Sub
    '↓D1セル以外の変更なら終了
    If Target.Address <> "$D$1" Then Exit Sub
    '↓D1セルの値によって色を指定
    Select Case Target.Value
        Case "山田建設"
            colr = 3 '赤
        Case "近藤建設"
            colr = 4 '緑
        ' 設定を増やすときは、↓の2行を☆行の上にコピペして、
        ' 会社名と数値を変更する
        Case "伊藤建設"
            colr = 5 '青
        '☆
        '↓上記以外の入力またはブランクのとき
        Case Else
            colr = xlNone '色なし
    End Select
    '↓D1セルのパターンを指定値に変更
    Target.Interior.ColorIndex = colr
    '↓開いているシートのタグ色を指定値に変更
    Sh.Tab.ColorIndex = colr
End Sub
 '↑この上まで

 あとはExcelのシートに戻って、D1セルに会社名を入力してみてください。
 (会社名や色の設定方法は、コード中にコメントで記述しています)
(コタ)0:14 追記0:20

(素人) 
 セキュリティレベルを 中に… と教えて頂きまして ありがとうございました

 それと、コタさん★ 見つけて頂いてありがとうございます。他の所で ゆきこと いうので質問していたのですが 判らなかったので こちらに書いたのです。
 見てもらって 感謝致します ありがとうございます
 今コタさんの教えて頂いたものを 見たばっかりで まだ作ってはいないのですが 

 >↓上記以外の入力またはブランクのとき
        Case Else
            colr = xlNone '色なし

 の所ですが 上記以外の場合は 色なし でなくて 何かの色を付けたいのですが 
 すいません お願いできますでしょうか
 コタさんに 読んでもらって 本当に感謝です m(__)m 良かった〜〜〜 (^_^)


 まず上のコード中に、不要な部分があったので、そのご連絡です。
>    '↓複数セルをまとめて変更したら終了
>    If Target.Count > 1 Then Exit Sub
この部分は不要ですので、削除してOKです(残してあってもOK)。

 「複数セルをまとめて変更」した場合、Target.Address(変更セルのアドレス)が、
例えば、$D$1:$D$2などのように、複数セル範囲のアドレスになりますので、その下の
>    '↓D1セル以外の変更なら終了
>    If Target.Address <> "$D$1" Then Exit Sub
のところでIf文が成り立って、マクロ終了になります。

 次に
> 上記以外の場合は 色なし でなくて 何かの色を付けたいのですが
についてですが、修正方法を覚えてほしいので、まずは上のコードのままで試してみてください。

 最終的には、10社分についてのコードに変更しますので、必ずコード修正が必要です。
そのためには、ある程度試行錯誤を繰り返していくと思いますので、その中で
・どこをどう変えたら、結果がどのように変わるか
が分かっていくでしょう。
そうすれば、上のご質問についても、きっとご自分で解決できると思いますよ。
(できなければ改めてお手伝いしますし)
まずは、習うより慣れろ、でいきましょう。
(コタ)

(素人) コタさん すみません 最初からつまずきまして

>1) どのシートでもよいので、シートタブを右クリックして、コードの表示を左クリック
  →「Microsoft Visual Basic - ファイル名.xls - [Sheet○ (コード)]」
   というタイトルの画面が開く

 の所ですが このようにすると 1月売上表.xlsーsheet3 (コード) と上に書いてある コードを書く 白地の所が出ますが 
 Microsoft Visual Basic とは出てないですが これは このまま進めても 良いでしょうか?
 すみません m(__)m

(素人) それで、紹介してあるURL を見たら

 [ツールメニュー:[マクロ(M)...]:[Visual Basic Editor(V)]を選択すると、下図の画面が表示されます、画面の右側半分にコードを入力します。]

 とあるのですが このようにしますと 全体がグレーの画面しか 出ないです
 すいません m(__)m

 > Microsoft Visual Basic とは出てないですが 
 > 1月売上表.xlsーsheet3 (コード) と上に書いてある コードを書く 白地の所が出ますが 
出てませんでしたか。まあファイル名以降の表示からすれば、だいじょうぶです。
そのまま(2)へ進んでください。

 >[ツールメニュー:[マクロ(M)...]:[Visual Basic Editor(V)]を選択すると、
ああ、ごめんなさい。
参照リンクを書いたのは、(1)の手順をすると、こんな感じの画面が開きますね、ということを
伝えたかっただけでした。
※画面の左側に、「ThisWorkbook」も見えてますので。
(コタ)

(素人) コタさんすいません 2の手順の

 >(2) 出てきた画面の中で、「ThisWorkbook」を探して、その部分をダブルクリック
  →画面のタイトルの右側が、「- [ThisWorkbook (コード)]に変わる

 のところですが  1月売上表.xlsーsheet3 (コード) と上に書いてある と上の青の帯に 書いてあるだけで
 何か thisworkbook をダブルクリック するような所が ないのですが いきなり 白地の所に このまま コピーしてやっていっても いいでしょうか? 何度も すいかせん


 プロジェクトエクスプローラが表示されていないのかな? 
Ctrl+Rキーで表示されるプロジェクトエクスプローラで
プロジェクト-VBAProjectのThisWorkbookを
右クリック→コードの表示で、「- [ThisWorkbook (コード)]になりませんか?
(PON)

 やはり、ThisWorkbookの捜索に手間取ってますね。
PONさんからのアドバイスと、↓の画面を見ながら、探してみてください。


 (コタ)

 ツールバーの【ファイル(F)】の左隣にある【XL】(エクセルのマーク)を
 右クリック → コードの表示
 
 ではいかがでしょう?
 (キリキ)(〃⌒o⌒)b

(素人) PONさん コタさん 本当にすいません 
 エクセルの私のファイルで 画面でCtrl+Rキー を押しても 何も変化がないのですが
 何か 私 間違っていますでしょうか? コタさんの表示してくださった 表も出てこないのですが
 どうやったら これが出ますでしょうか? 本当に すいません

(キリキ)さん ありがとうございます 出来たみたいです 青の帯の中に
 1月 売上表.xls-thisworkbook(コード) と書いてあります このままこの下の 白紙の部分に
 コピー貼り付けしていけば いいでしょうか? すみません

 はい^^
 (キリキ)(〃⌒o⌒)b


 おおっ、こんなところに!
キリキさん、すごいです。

 >このままこの下の 白紙の部分に コピー貼り付け
そうです。
もう一息ですよ。
(コタ)

 >画面でCtrl+Rキー
 それは白いエクセルシートの上ではなく
 Visual Basic Editor の上で行うんです
 (dack)(もう遅いけどw

(素人) コタさん PONさん キリキさん dackさん ありがとうございました。出来ました m(__)m
 皆さんに 助けて頂き 本当に どうも ありがとうございました。 m(__)m m(__)m m(__)m
 あとセキュリティレベルは 低にしても いいでしょうか? 中だと 何か開くたびに
 「マクロを有効にする」 を押すような 画面がでます。低だと 出ませんが いいでしょうか


 参考にどうぞ^^
[[20040818231619]] 『マクロの有効無効を表示しない方法』(ルパン)
 
 (キリキ)(〃⌒o⌒)b


(素人) それと もう一つ すいません 

 > '↓上記以外の入力またはブランクのとき
        Case Else
            colr = xlNone '色なし
 ですが 

 上記以外の入力のときは 水色をつけましたが、ブランクのときだけは 色なし にしたいですが
 すいません それはどう変えればいいのかわからないのですが、すいません 教えてくださいますでしょうか
 宜しくお願い致します

(素人)キリキさん ありがとうございます。判りました。(^_^)NTTのセキュリティソフトを使っているので 低にします ありがとうございました m(__)m

 >  上記以外の入力のときは 水色をつけましたが
順調に進んでいるようですね。

 > ブランクのときだけは 色なし にしたいですが
変更後のセルがブランクかどうかは、
        Case ""
とすることで判定できます。
挿入する場所は、コード内コメントのとおり、☆行より上にしてください。
色なしにする設定は既出ですね。
(コタ)

Case "工賃"
  (素人) すいません 出来ないです…
これは 間違っていますでしょうか 途中の所から コピーしましたが、

          colr = 16 '青
        Case "ブランク"
            colr = xlNone '色なし
        '☆
        '↓上記以外の入力またはブランクのとき
        Case Else
            colr = 41 '色なし
    End Select
    '↓D1セルのパターンを指定値に変更
    Target.Interior.ColorIndex = colr
    '↓開いているシートのタグ色を指定値に変更
    Sh.Tab.ColorIndex = colr
End Sub

 これは 間違っていますでしょうか? すいません m(__)m

 >         Case "ブランク"
これだと、D1セルの値が、「ブランク」という文字列かどうか、という判定になっちゃいます。
なので、
        Case "ブランク"
       ↓
        Case ""
このように変更してみてください。

 ついでに、影響はありませんが、
            colr = 41 '色なし
            ↓
            colr = 41 '水色
と直しておいたほうがいいですね。
(コタ)

(素人)コタさん!! できました!!
 ありがとうございましたーー。

 でも 本当に凄いですね〜。下の タグまでちゃんと同時に 同じ色に 出来るんですね〜〜  本当にビックリしました。 何でも 出来るんですねー 
 コタさんが 教えてくださったものを読んでいると 何か もう凄すぎて 読みながら 顔がニヤニヤします。
 説明も 素人にも 凄い判り易く書いてくださるし まるで先生のようです。ありがとうございました

 コタさん PONさん キリキさん dackさん どうも ありがとうございました
 感謝致します m(__)m m(__)m m(__)m

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.