C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

VBA_セル背景色の取得及び設定について

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■92695 / inTopicNo.1)  VBA_セル背景色の取得及び設定について
  
□投稿者/ 鏡月 (20回)-(2019/10/21(Mon) 09:44:23)

分類:[Microsoft Office 全般] 

いつもお世話になっております。
鏡月と申します。

EXCELのVBAで設定したセル背景色を別のセルに塗りつぶすプログラムを作成しているのですが設定したセルの背景色と若干違う背景色が塗られてしまいます。

設定した背景色通りに塗りつぶしを行いたい場合、どのようにすればよろしいでしょうか?
お手数おかけしますが、ご教授願います。

サンプルコード
Dim lngColor1 As Long
lngColor1 = ActiveSheet.Cells(2, 3).Interior.ColorIndex
  '確認用として二つのコードで確認いたしましたが二つとも設定した背景色になりませんでした。
ActiveSheet.Cells(2, 4).Interior.ColorIndex = ActiveSheet.Cells(2, 3).Interior.ColorIndex
ActiveSheet.Cells(2, 5).Interior.ColorIndex = lngColor1

引用返信 編集キー/
■92696 / inTopicNo.2)  Re[1]: VBA_セル背景色の取得及び設定について
□投稿者/ furu (10回)-(2019/10/21(Mon) 10:02:11)
No92695 (鏡月 さん) に返信
ColorIndexではなく、Colorを使うといいです。
説明は省かしてください。
引用返信 編集キー/
■92697 / inTopicNo.3)  Re[1]: VBA_セル背景色の取得及び設定について
□投稿者/ 大谷刑部 (46回)-(2019/10/21(Mon) 10:18:57)
No92695 (鏡月 さん) に返信
> サンプルコード
> Dim lngColor1 As Long
> lngColor1 = ActiveSheet.Cells(2, 3).Interior.ColorIndex
>   '確認用として二つのコードで確認いたしましたが二つとも設定した背景色になりませんでした。
> ActiveSheet.Cells(2, 4).Interior.ColorIndex = ActiveSheet.Cells(2, 3).Interior.ColorIndex
> ActiveSheet.Cells(2, 5).Interior.ColorIndex = lngColor1
>

ColorIndex だとColorIndex にExcelのパレットに設定されている色しか設定できません。
確実に同じ色にしたいならColorプロパティーのほうを使ってください。
引用返信 編集キー/
■92698 / inTopicNo.4)  Re[2]: VBA_セル背景色の取得及び設定について
□投稿者/ 鏡月 (21回)-(2019/10/21(Mon) 10:34:56)
furu様、大谷刑部様
ご回答ありがとうございます。
頂きました回答を元に修正したところ、無事に設定した背景色に変更することが出来ました。

ありがとうございました。
引用返信 編集キー/
■92699 / inTopicNo.5)  Re[2]: VBA_セル背景色の取得及び設定について
□投稿者/ 鏡月 (22回)-(2019/10/21(Mon) 10:35:13)
解決チェック用
解決済み
引用返信 編集キー/
■92700 / inTopicNo.6)  Re[2]: VBA_セル背景色の取得及び設定について
□投稿者/ Hongliang (906回)-(2019/10/21(Mon) 10:35:50)
2019/10/21(Mon) 10:36:27 編集(投稿者)

背景色に設定されているのが「テーマの色」のときにColorをコピーした場合、テーマを変更した時に色の変更が追従されない問題があります。
// 実際のところそれで困ることはあんまりないような気もしますが。
これに対応するのであれば、コピー元のThemeColorが0であればColorをコピーし、そうでなければThemeColorとTintAndShadeをコピーする、という方法を採れます。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ