Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A formatação condicional no Excel aplica formatação a células com base em condições ou regras específicas. Estes formatos ajustam-se automaticamente quando os dados são alterados, pelo que o script não precisa de ser executado várias vezes. Esta página contém uma coleção de Scripts do Office que demonstram várias opções de formatação condicional.
Este livro de exemplo contém folhas de cálculo prontas para serem testadas com os scripts de exemplo.
Observação
Execute estes exemplos diretamente a partir do Editor de Código de Scripts do Office. Para abrir o Editor de Código, aceda a Automatizar>a Criação de Novo Script>no Editor de Código. Substitua o código predefinido pelo código de exemplo que pretende executar e, em seguida, selecione Executar.
Valor da célula
A formatação condicional do valor da célula aplica um formato a cada célula que contenha um valor que cumpra um determinado critério. Isto ajuda a detetar rapidamente pontos de dados importantes.
O exemplo seguinte aplica a formatação condicional do valor da célula a um intervalo. Qualquer valor inferior a 60 terá a cor de preenchimento da célula alterada e o tipo de letra será itálico.
function main(workbook: ExcelScript.Workbook) {
// Get the range to format.
const sheet = workbook.getWorksheet("CellValue");
const ratingColumn = sheet.getRange("B2:B12");
sheet.activate();
// Add cell value conditional formatting.
const cellValueConditionalFormatting =
ratingColumn.addConditionalFormat(ExcelScript.ConditionalFormatType.cellValue).getCellValue();
// Create the condition, in this case when the cell value is less than 60
let rule: ExcelScript.ConditionalCellValueRule = {
formula1: "60",
operator: ExcelScript.ConditionalCellValueOperator.lessThan
};
cellValueConditionalFormatting.setRule(rule);
// Set the format to apply when the condition is met.
let format = cellValueConditionalFormatting.getFormat();
format.getFill().setColor("yellow");
format.getFont().setItalic(true);
}
Escala de cores
A formatação condicional da escala de cores aplica uma gradação de cor num intervalo. As células com os valores mínimo e máximo do intervalo utilizam as cores especificadas, com outras células dimensionadas proporcionalmente. Uma cor de ponto intermédio opcional proporciona mais contraste.
Este exemplo seguinte aplica uma escala de cores vermelha, branca e azul ao intervalo selecionado.
function main(workbook: ExcelScript.Workbook) {
// Get the range to format.
const sheet = workbook.getWorksheet("ColorScale");
const dataRange = sheet.getRange("B2:M13");
sheet.activate();
// Create a new conditional formatting object by adding one to the range.
const conditionalFormatting = dataRange.addConditionalFormat(ExcelScript.ConditionalFormatType.colorScale);
// Set the colors for the three parts of the scale: minimum, midpoint, and maximum.
conditionalFormatting.getColorScale().setCriteria({
minimum: {
color: "#5A8AC6", /* A pale blue. */
type: ExcelScript.ConditionalFormatColorCriterionType.lowestValue
},
midpoint: {
color: "#FCFCFF", /* Slightly off-white. */
formula: '=50', type: ExcelScript.ConditionalFormatColorCriterionType.percentile
},
maximum: {
color: "#F8696B", /* A pale red. */
type: ExcelScript.ConditionalFormatColorCriterionType.highestValue
}
});
}
Barra de dados
A formatação condicional da barra de dados adiciona uma barra parcialmente preenchida no fundo de uma célula. A plenitude da barra é definida pelo valor na célula e pelo intervalo especificado pelo formato.
O exemplo seguinte cria formatação condicional da barra de dados no intervalo selecionado. A escala da barra de dados passa de 0 a 1200.
function main(workbook: ExcelScript.Workbook) {
// Get the range to format.
const sheet = workbook.getWorksheet("DataBar");
const dataRange = sheet.getRange("B2:D5");
sheet.activate();
// Create new conditional formatting on the range.
const format = dataRange.addConditionalFormat(ExcelScript.ConditionalFormatType.dataBar);
const dataBarFormat = format.getDataBar();
// Set the lower bound of the data bar formatting to be 0.
const lowerBound: ExcelScript.ConditionalDataBarRule = {
type: ExcelScript.ConditionalFormatRuleType.number,
formula: "0"
};
dataBarFormat.setLowerBoundRule(lowerBound);
// Set the upper bound of the data bar formatting to be 1200.
const upperBound: ExcelScript.ConditionalDataBarRule = {
type: ExcelScript.ConditionalFormatRuleType.number,
formula: "1200"
};
dataBarFormat.setUpperBoundRule(upperBound);
}
Conjunto de ícones
A formatação condicional do conjunto de ícones adiciona ícones a cada célula num intervalo. Os ícones são provenientes de um conjunto especificado. Os ícones são aplicados com base numa matriz ordenada de critérios, com cada critério a mapear para um único ícone.
O exemplo seguinte aplica a formatação condicional do conjunto de ícones "três semáforos" a um intervalo.
function main(workbook: ExcelScript.Workbook) {
// Get the range to format.
const sheet = workbook.getWorksheet("IconSet");
const dataRange = sheet.getRange("B2:B12");
sheet.activate();
// Create icon set conditional formatting on the range.
const conditionalFormatting = dataRange.addConditionalFormat(ExcelScript.ConditionalFormatType.iconSet);
// Use the "3 Traffic Lights (Unrimmed)" set.
conditionalFormatting.getIconSet().setStyle(ExcelScript.IconSet.threeTrafficLights1);
conditionalFormatting.getIconSet().setCriteria([
{ // Use the red light as the default for positive values.
formula: '=0', operator: ExcelScript.ConditionalIconCriterionOperator.greaterThanOrEqual,
type: ExcelScript.ConditionalFormatIconRuleType.number
},
{ // The yellow light is applied to all values 6 and greater. The replaces the red light when applicable.
formula: '=6', operator: ExcelScript.ConditionalIconCriterionOperator.greaterThanOrEqual,
type: ExcelScript.ConditionalFormatIconRuleType.number
},
{ // The green light is applied to all values 8 and greater. As with the yellow light, the icon is replaced when the new criteria is met.
formula: '=8', operator: ExcelScript.ConditionalIconCriterionOperator.greaterThanOrEqual,
type: ExcelScript.ConditionalFormatIconRuleType.number
}
]);
}
Predefinição
A formatação condicional predefinida aplica um formato especificado a um intervalo com base em cenários comuns, como células em branco e valores duplicados. A lista completa de critérios predefinidos é fornecida pela enumeração ConditionalFormatPresetCriterion .
O exemplo seguinte fornece um preenchimento amarelo a qualquer célula em branco no intervalo.
function main(workbook: ExcelScript.Workbook) {
// Get the range to format.
const sheet = workbook.getWorksheet("Preset");
const dataRange = sheet.getRange("B2:D5");
sheet.activate();
// Add new conditional formatting to that range.
const conditionalFormat = dataRange.addConditionalFormat(
ExcelScript.ConditionalFormatType.presetCriteria);
// Set the conditional formatting to apply a yellow fill.
const presetFormat = conditionalFormat.getPreset();
presetFormat.getFormat().getFill().setColor("yellow");
// Set a rule to apply the conditional format when cells are left blank.
const blankRule: ExcelScript.ConditionalPresetCriteriaRule = {
criterion: ExcelScript.ConditionalFormatPresetCriterion.blanks
};
presetFormat.setRule(blankRule);
}
Comparação de texto
A formatação condicional de comparação de texto formatará células com base nos respetivos conteúdos de texto. A formatação é aplicada quando o texto começa com, contém, termina com ou não contém a subcadeia especificada.
O exemplo seguinte marca qualquer célula no intervalo que contém o texto "review".
function main(workbook: ExcelScript.Workbook) {
// Get the range to format.
const sheet = workbook.getWorksheet("TextComparison");
const dataRange = sheet.getRange("B2:B6");
sheet.activate();
// Add conditional formatting based on the text in the cells.
const textConditionFormat = dataRange.addConditionalFormat(
ExcelScript.ConditionalFormatType.containsText).getTextComparison();
// Set the conditional format to provide a light red fill and make the font bold.
textConditionFormat.getFormat().getFill().setColor("#F8696B");
textConditionFormat.getFormat().getFont().setBold(true);
// Apply the condition rule that the text contains with "review".
const textRule: ExcelScript.ConditionalTextComparisonRule = {
operator: ExcelScript.ConditionalTextOperator.contains,
text: "review"
};
textConditionFormat.setRule(textRule);
}
Superior/inferior
A formatação condicional superior/inferior marca os valores mais altos ou mais baixos num intervalo. Os valores altos e baixos baseiam-se em valores ou percentagens não processados.
O exemplo seguinte aplica formatação condicional para mostrar os dois números mais altos no intervalo.
function main(workbook: ExcelScript.Workbook) {
// Get the range to format.
const sheet = workbook.getWorksheet("TopBottom");
const dataRange = sheet.getRange("B2:D5");
sheet.activate();
// Set the fill color to green and the font to bold for the top 2 values in the range.
const topBottomFormat = dataRange.addConditionalFormat(ExcelScript.ConditionalFormatType.topBottom).getTopBottom();
topBottomFormat.getFormat().getFill().setColor("green");
topBottomFormat.getFormat().getFont().setBold(true);
topBottomFormat.setRule({
rank: 2, /* The numeric threshold. */
type: ExcelScript.ConditionalTopBottomCriterionType.topItems /* The type of the top/bottom condition. */
});
}
Condições personalizadas
A formatação condicional personalizada permite que fórmulas complexas definam quando a formatação é aplicada. Utilize esta opção quando as outras opções não forem suficientes.
O exemplo seguinte define uma formatação condicional personalizada no intervalo selecionado. Um preenchimento verde claro e um tipo de letra a negrito são aplicados a uma célula se o valor for maior do que o valor na coluna anterior da linha.
function main(workbook: ExcelScript.Workbook) {
// Get the range to format.
const sheet = workbook.getWorksheet("Custom");
const dataRange = sheet.getRange("B2:H2");
sheet.activate();
// Apply a rule for positive change from the previous column.
const positiveChange = dataRange.addConditionalFormat(ExcelScript.ConditionalFormatType.custom).getCustom();
positiveChange.getFormat().getFill().setColor("lightgreen");
positiveChange.getFormat().getFont().setBold(true);
positiveChange.getRule().setFormula(
`=${dataRange.getCell(0, 0).getAddress()}>${dataRange.getOffsetRange(0, -1).getCell(0, 0).getAddress()}`
);
}