[[20140922220401]] 『空欄の色を指定した色に変えるだけで指定した数字』(斗夢) ページの最後に飛ぶ

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

 

『空欄の色を指定した色に変えるだけで指定した数字が入力されるようにしたい』(斗夢)

空欄に指定した色を入力すると、指定した数字が
自動入力されるようにするにはどうすればよい
でしょうか。

< 使用 Excel:unknown、使用 OS:unknown >


 色を入力というのは、具体的に何をすることですか?
 セルの塗り潰し?
 赤とか青など文字を入力すること?

(稲葉) 2014/09/23(火) 06:28


お疲れ様です。
例えば、A2欄でテーマの色で黄色を選択したとします。
そのとき、A2欄は黄色になりますが、それと同時に
指定した数字が4として4がA2欄に入力されるように
したいのですが・・・。
(斗夢) 2014/09/23(火) 10:07

 色を変えただけではイベントが取得できませんので、色を変えた後に「ボタンを押す」など
 ひと手間必要です。

    Sub 開国してくださいよぅ()
        Dim r
        For Each r In Sheets("Sheet2").UsedRange
            Select Case r.Interior.ColorIndex
                Case 1: r.Value = 1
                Case 2: r.Value = 2
                Case 3: r.Value = 3
                Case Else: r.Value = ""
            End Select
        Next r
    End Sub

    Sub 色番号検索()
        If Selection.CountLarge > 1 Then Exit Sub
        Selection.Value = Selection.Interior.ColorIndex
    End Sub

 入力する文字は「Case 1: r.Value = 1」をコピーして、Case 色番号: r.Value = 文字
 として入力してください。

 色番号が分からないときは、色を付けたセルを選択して、「色番号検索」を実行すると、そのセルに
 色番号が入力されます。
(稲葉) 2014/09/23(火) 10:37

 逆の操作ですけれど、数字を入れたら色が付くのではまずいのでしょうか。
 であれば、条件付き書式等でできると思います。

 選択リストにしておけば、入力の手間も軽減できると思います。
(Mook) 2014/09/23(火) 11:05

本来のやりたいことの説明があればもっと解答がしやすいように思いますが

色から数字(色コードでは無く)を入力というのは難しいように思います。

色には微妙に違うものが多数有り特定しにくいように思います

特定の色リストを用意しておきそこから選択するなどならいいと思うけど

質問から推測(黄色 → 4)すると抵抗のカラーコードとかかな?
(あかさな) 2014/09/23(火) 11:57


 >空欄に指定した色を入力すると、指定した数字が自動入力される

 これ既に投稿されているように セルに対して、色の塗りつぶしという操作で発生するイベントがありません。

 1 その仕様を変更する

 2 塗りつぶしという処理も仕様に含んだプログラムにしてしまう

 大きくは、この二つに変更するというのも既に投稿されています。

 2に関しては、

 ある程度、塗りつぶす色が決められているなら、ユーザーフォームにその色の数だけ
 塗りつぶしを行うコマンドボタンを用意するという方法もあります。

 色の数は、セルの塗りつぶし可能色すべての場合、Dialogsオブジェクトを使う方法もあります。

 Sub test()
   Dim ans As Boolean
   Dim onum As Long
   ans = Application.Dialogs(xlDialogPatterns).Show
   If ans Then
      With ActiveCell.Interior
         If .Color = vbRed Then
            onum = 1
         ElseIf .Color = vbYellow Then
            onum = 4
         ElseIf .Color = vbWhite Then
            onum = 2
         ElseIf .Color = vbBlue Then
            onum = 9
         Else
            onum = 15
         End If
      End With
      Selection.Value = onum
   End If
 End Sub

 中の処理は、一例にすぎませんが・・・。

( ichinose) 2014/09/23(火) 19:53


コメント返信:

[ 一覧(最新更新順) ]


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