모든 표의 셀들을 체크해 특정배경색이면 다른색으로 변환하는 방법이 있을까요?

문서내 모든 표들의 셀들중 배경 부분에 보면 파란색이라면 회색으로 바꾸는 방법이 궁금합니다.

  1. 문서내 치환 기능으로 색깔 변경이 가능한지?
  2. 표 에서 모든 셀의 에서 특정 컬러값을 변경 컬러값으로 변경 하는 기능이 가능한지?
  3. 표 내에 모든 셀을 Loop 돌면서 스타일이 값을 보고 특정 스타일명이면 배경색을 강제로 변경하는 방법
1개의 좋아요
  1. 치환 기능으로는 색변경이 어렵습니다.
  2. CellBorderFill 액션을 이용하면 컬러값이 변경 가능하지만, 특정 컬러를 변경하는 로직은 따로 개발을 하셔야 할것 같습니다.
  3. 제가 다른글에 작성한 댓글이지만 해당 댓글에 셀을 처음부터 도는 로직을 생각해봤습니다.
    셀을 하나씩 돌면서 셀의 색을 구해서 바꾸길 원하시는 색이면 바꾸도록 하는 로직을 만드셔야할것 같습니다.
    클릭한 셀이 속한 테이블의 행과 열의 갯수를 알수 있을까요? - bhjung 님의 게시물 #2

셀의 색상을 바꾸는 예제 코드입니다.

	HAction.GetDefault("CellBorderFill", HParameterSet.HCellBorderFill.HSet);
	with (HParameterSet.HCellBorderFill)
	{
		FillAttr.Type = BrushType("NullBrush|WinBrush");
		FillAttr.WinBrushFaceColor = RGBColor(255, 0, 0);
		FillAttr.WinBrushHatchColor = RGBColor(153, 153, 153);
		FillAttr.WinBrushFaceStyle = HatchStyle("None");
		FillAttr.WindowsBrush = 1;
	}
	HAction.Execute("CellBorderFill", HParameterSet.HCellBorderFill.HSet);

그리고 선택한셀의 GetDefault를 통해 기본값을 가져오면 FaceColor set 값을 가져오면 현재 셀의 색상을 가져올수 있습니다.
셀의 색상은 COLORREF입니다.
아래 링크 참고부탁드립니다.

감사합니다.

2개의 좋아요