そこで、考えられるすべての組み合わせを使用するまで R、G、B の値をランダムに選択し (繰り返しをスキップして)、新しい色ごとに 10x10 の正方形の色値を設定する、楽しくてシンプルなマクロを作成しました。
唯一の問題は、セル形式の数が制限に達したことです。Microsoft によると、制限は 64000 前後である必要がありますが、Excel 2013 の空白のブックでは正確に 65429 であることがわかりました。
明確なフォーマットコードを含めましたが、効果がないようです:
Cells(X, Y).ClearFormats
マイクロソフトはいくつかの解決策を挙げていますが、4つのうち3つは本質的に「フォーマットを作りすぎないこと」であり、4つ目のフォーマットはサードパーティのアプリケーションを使用することです。
VBAでできることは本当に何もないのですか?
- A1:J10は新しい色を印刷します
- K1は完了までのパーセンテージを出力します
- L1は使用された色の数を印刷します
M1は、色の組み合わせが繰り返される回数を印刷します
Dim CA(255, 255, 255) As Integer Dim CC As Long Dim RC As Long Dim R As Integer Dim G As Integer Dim B As Integer Dim X As Integer Dim Y As Integer CC = 0 RC = 0 X = 1 Y = 1 Do While ColorCount < 16777216 R = ((Rnd * 256) - 0.5) G = ((Rnd * 256) - 0.5) B = ((Rnd * 256) - 0.5) If CA(R, G, B) <> 1 Then CA(R, G, B) = 1 'Step down to the next row 'If at the 10th row, jump back to the first and move to the next column If X < 10 Then X = X + 1 Else X = 1 If Y < 10 Then Y = Y + 1 Else Y = 1 End If End If Cells(X, Y).ClearFormats 'doesn't do what I hope :( Cells(X, Y).Interior.Color = RGB(R, G, B) CC = CC + 1 Cells(1, 11).Value = (CC / 16777216) * 100 Cells(1, 12).Value = CC Else RC = RC + 1 Cells(1, 13).Value = RC End If Loop