
No.4ベストアンサー
- 回答日時:
#3ですが・・・
先に提示したコードで、例えば、色の番号を入力するとき、万が一間違って 128- など"-" が後に付加
されると実行エラーになりますので、下記のコードと差し替えてください。
使用例は、例えば、B1に0、B2に10 を入れ、この2つを選択して下にフィルドラッグしてください。
Public Fg As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range
Set Target = Intersect(Range("A1:IV500"), Target)
If Target Is Nothing Then Exit Sub
If Selection.Rows.Count > 500 Then Exit Sub
For Each Rng In Target
If Fg = False Then setplt
If IsNumeric(Rng.Text) Then
Rng.Interior.Color = RGB(Abs(Rng * 1), Abs(Rng * 1), Abs(Rng * 1))
ElseIf IsEmpty(Rng) Then
Rng.Interior.ColorIndex = xlNone
End If
Next Rng
End Sub
Sub setplt()
Dim N As Integer
Dim C As Integer
For N = 1 To 56
C = Int(255 / 55 * (N - 1))
ActiveWorkbook.Colors(N) = RGB(C, C, C)
Next N
Fg = True
End Sub
この回答へのお礼
お礼日時:2005/02/03 20:53
お礼が大変遅くなり、申し訳ありません。ご回答、ありがとうございました。
256段階での表示、確認しました。使用させていただきます。
また何かありましたら、よろしくお願いします。
No.3
- 回答日時:
次の手順で操作すると、ご希望の機能になると思います。
・使用しているシートのシート名タブを右クリックして「コードの表示」を指定します。
・開いたコードウィンドウに下記コードをコピーして貼り付けます。
・Alt+ Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります。
・メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を
「中」にして[OK]します。
・以上で設定完了です。
500行より上の任意のセルに0~255の数値を入力してみてください。
相応のコントラストで塗り潰されます。
シート全体とか、行を選択し、 DEL したときは、色を残し、数値だけをクリアします。
小範囲を選択し、 DEL した場合は、その範囲だけを「塗り潰し無し」に戻します。
多分、こういうことではないかと思いますが、如何でしょうか。
Public Fg As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range
Set Target = Intersect(Range("A1:IV500"), Target)
If Target Is Nothing Then Exit Sub
If Selection.Rows.Count > 500 Then Exit Sub
For Each Rng In Target
If Fg = False Then setplt
If IsNumeric(Rng.Text) Then
Rng.Interior.Color = RGB(Rng.Value, Rng.Value, Rng.Value)
ElseIf IsEmpty(Rng) Then
Rng.Interior.ColorIndex = xlNone
End If
Next Rng
End Sub
Sub setplt()
Dim N As Integer
Dim C As Integer
For N = 1 To 56
C = Int(255 / 55 * (N - 1))
ActiveWorkbook.Colors(N) = RGB(C, C, C)
Next N
Fg = True
End Sub
No.2
- 回答日時:
>白黒56段階での表示は可能なのでしょうか?
マクロを使えば可能です。
こんなんでヒントになりますか?
(カラーパレットを変えておく必要があると思います)
#ただ、横500列はEXCELでは無理ですよ。
#256列しかありません。
Sub test()
For i = 1 To 56
ActiveWorkbook.Colors(i) = RGB(i + 99, i + 99, i + 99)
Cells(i, 1).Interior.ColorIndex = i
Next
End Sub
この回答へのお礼
お礼日時:2005/02/03 20:51
お礼が大変遅くなり、申し訳ありません。
ご回答、ありがとうございました。
56段階で表示できました。また、列に関するご指摘もありがとうございました。
また何かありましたら、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日付が未入力の際はゼロか、空...
-
Excelの「0」だけ非表示、小数...
-
複数シートの同じセル内容を1シ...
-
VBA セル間のリンク修正につい...
-
エクセルで複写のように自動入...
-
(Excel)あるセルに文字を入力...
-
エクセルでデータを蓄積させる...
-
Excelシートの保護時にデータの...
-
エクセルで、勤務表から 日付...
-
エクセルについて
-
複数シートの同一セルを抽出す...
-
VBAで変数に関数式の結果をセッ...
-
エクセル ctrl+End いくら削...
-
シートが異なるセル同士を、相...
-
INDIRECT(空白や()がある文字列...
-
エクセルで串刺し計算ができない。
-
エクセル VLOOKUPから...
-
エクセルで別シートからの最大...
-
エクセルで20万行あるシート...
-
EXCEL リストボックスのRowSouc...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
VBA セル間のリンク修正につい...
-
エクセルで1月0日と表示される!!
-
日付が未入力の際はゼロか、空...
-
Office2021のエクセルで米国株...
-
Excelで複数シートの選択セルを...
-
Excelシートの保護時にデータの...
-
エクセルで条件に一致したセル...
-
エクセルで、加筆修正したセル...
-
Excelでスクロールすると文字が...
-
エクセルで複写のように自動入...
-
ExcelでTODAY関数を更新させな...
-
(Excel)あるセルに文字を入力...
-
複数シートの同じセル内容を1シ...
-
エクセルで指定のセルのみ完全...
-
エクセル ハイパーリンクで画像...
-
エクセルで複数のシートの同じ...
-
エクセルについて
-
EXCELのハイパーリンクのセルを...
-
エクセルで別シートからの最大...
おすすめ情報