[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルの色を変える?』(トマト)
セルでC5を選ぶと左側の5と上側のCの所が 色が変わるのですが その様な感じでC5を選ぶとA5のセルの色を 変える事なんて出来るのでしょうか? ちなみにC6を選ぶとA6、D5を選ぶとA5と 言う感じに選んだ行のA列のセルの色を 変えたいのですが・・・
(トマト)
今日はマクロ達人の方々があまりお見えではないので、取り合えず私のやっている方法です。 作業セルを例えば Z1 として、色を変えたいA列のセルに条件付き書式で 数式が− =ROW()=$Z$1 とし、書式−パターンで好きな色を選択します。 次に、シートの見出しを右クリック−コードの表示をクリック、 表示されたウインドウに下記のコードをコピーして下さい。 尚、C5:C7 のように範囲を選んだ場合でも1番上のセルしか色が付きません。 まだまだマクロは未熟なもので、、、。(純丸)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("Z1") = Target.Row
End Sub
出来ました ありがとうございました。 かなり困っていたので助かりました。 また、何かありましたらそのときはお願いします。
(トマト)
解決済みで余談ですが、複数セルの場合は以下のような感じでしょうか。 ただ、飛び飛びの場合はループさせての処理になるのかな・・・。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Const MyColor As Integer = 34 With Cells(Target.Row, 1).Resize(Selection.Count) If .Interior.ColorIndex = MyColor Then .Interior.ColorIndex = xlNone Else .Interior.ColorIndex = MyColor End If End With End Sub 同じ色の行を選択したときは消すようになってます。
的外れでした。_/ ̄|○ il||li こうかな・・・。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Const MyColor As Integer = 34 Range(Cells(1, 1), Cells(65536, 1)).Interior.ColorIndex = xlNone With Cells(Target.Row, 1).Resize(Selection.Count) .Interior.ColorIndex = MyColor End With End Sub
(川野鮎太郎)
さすが鮎さん、作業セルなど関係なく、複数セルにも対応して完璧ですね。私もこれに切り替えます。 トマトさん、私のはやめてこちらに切り替えてましょう。 (純丸) やっぱり達人は違う。
と・と・とんでもないですぅ・・・。 達人の域には到底達していません(^_^A; え?判ってるって?(笑 (川野鮎太郎)
完璧・・と言っておいて何ですが、色を変えたい行にもともとついていた色も消えてしまいますよね。 これを回避するには色をクリアするセルを設定しないといけませんか? 例えばイベント発生直前の セルアドレスを記憶している、、、なんてことは無いのでしょうか? それがわかればそこだけ消せる理屈ですが。 (純丸)
あ!そっか・・・。範囲指定で消すのでそこで区別しているつもりだったけど、 条件付書式は、書式より条件のほうが優先でしたね。
う〜ん(/-_-\)どしよ・・・。
うっと、えっと、あの・・・(_ _ ;)尸"マイリマシタ・・・ 条件付書式との併用がベストみたいです。(^_^A; Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim MyRow As Long If Target.Count > 100 Then Exit Sub '100より多く選択はダメ。 MyRow = ActiveCell.Row Range("Z1:Z65536").ClearContents MyCount = Selection.Count For i = 0 To MyCount - 1 Cells(MyRow + i, 26) = MyRow + i Next i End Sub
こうして、条件付書式で純丸さんの案で=ROW()=$Z$1を=ROW()=Z1 (^_^A;
でもセルを複数選択で・・・・・下から上に選んじゃ(*/∇\*)イヤン
(川野鮎太郎)
こんな表なもんで、、、。まだ上のコードをセットする前のファイルですが、うまくいきそうですね。 鮎さん、感謝、感謝、m(__)m。トマトさん、レスをお借りし、失礼しました。(純丸)
複数列にまたがって範囲選択すると _/ ̄|○ il||li になってしまう、、、(泣)。(純丸)
そうなんですよね(;^_^A アセアセ 改良の余地ありです。 ただ上記も速度が遅いので以下のほうが良いみたい。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim MyA() As Long If Target.Count > 100 Then Exit Sub MyCount = Selection.Rows.Count MyRow = ActiveCell.Row Range("Z1:Z65536").ClearContents ReDim MyA(MyCount - 1, 0) For i = 0 To MyCount - 1 MyA(i, 0) = ActiveCell.Row + i Next i Cells(MyRow, 26).Resize(MyCount).Value = MyA() End Sub (川野鮎太郎)
速度気にせず・・・(;^_^A アセアセ Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim MyC As Long Dim c As Range If Target.Count > 100 Then Exit Sub Range("Z1:Z65536").ClearContents For Each c In Selection Cells(c.Row, 26).Value = c.Row Next c End Sub 少しおかしかったので修正しました。 1/15 22:30
(川野鮎太郎)
ぱっとしか見ていないので見当違いだったらごめんちゃいです。 Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim C As Range, i As Long Range("A2:B15").FormatConditions.Delete If Intersect(Target, Range("E2:F15")) Is Nothing Then Exit Sub For Each C In Selection i = C.Row With Range("A" & i, "B" & i) If .FormatConditions.Count < 3 Then .FormatConditions.Add Type:=xlExpression, Formula1:="=ROW()=" & i .FormatConditions(1).Interior.ColorIndex = 37 End If End With Next End Sub http://ryusendo.no-ip.com/cgi-bin/upload/src/up0214.xls (SoulMan)
質問した後、急遽会社を出て先ほど帰宅しました。遅レスすみません。 SoulManさんまで登場していただき、 ありがとうございました。 サンプルシート、うまく動いているようです。 鮎さんもいろいろ提示いただいてありがとうございました。(純丸)
横からすみません 純丸さんの上記exlの例で 条件書式の書き方をお教えください。 B C D 1 ノート前残 えんぴつ前残 ファイル前残 となっていますので・・・、
E5をアクティブの時 B5を青、C5とD5を透明 F5をアクティブの時 C5を青、B5とD5を透明 G5をアクティブの時 D5を青、B5とC5を透明 としたい。 質問 =Row=$D$20の条件書式に、どういう書き方をすればいいのでしょうか、 お教えください。 (Ty)
To Tyさん マクロのコードを以下にして、B5の条件付書式を =AND(ROW()=$D$20,COLUMN()=$D$21-3) として、C,D列にコピーしてみてください。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count <> 1 Then Exit Sub Range("D20") = Target.Row Range("D21") = Target.Column End Sub
(川野鮎太郎)
純丸さん、ありがとうございました。 朝からずっと条件書式とマクロを考えていましたが、できませんでした。 条件書式はわかったんですが、 Target.Columnを Target.Colmunとしていました。 今わかりました。 (Ty)
Tyさん、こんばんは。え〜っと、2つ上のレスは自分ではありません。どなたですかぁ? いずれにせよ、代わりに回答していただき、ありがとうございました。今日は寒くて 1日中、こたつでゴロゴロしてました。(純丸)
名前入れるの忘れてました(^_^A; (川野鮎太郎)
鮎さんだったんだ。フォロー感謝です。(純丸)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.