This cannot be done without scripting, but the script itself is quite simple:
function onEdit() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var dataRange = sheet.getDataRange();
var backgroundColorRows = new Array();
var foregroundColorRows = new Array();
var maxRow = dataRange.getLastRow();
var maxCol = dataRange.getLastColumn();
for (var i = 0; i < maxRow; i++) {
var thisBackgroundRow = new Array(maxCol);
var thisForegroundRow = new Array(maxCol);
if (i < maxCol) {
thisBackgroundRow[i] = "black";
thisForegroundRow[i] = "white";
}
backgroundColorRows[backgroundColorRows.length] = thisBackgroundRow;
foregroundColorRows[foregroundColorRows.length] = thisForegroundRow;
}
dataRange.setBackgroundColors(backgroundColorRows.splice(0, maxRow));
dataRange.setFontColors(foregroundColorRows.splice(0, maxRow));
}
To install the script, click Tools -> Script editing, paste the code into the editor, and save. Note that the cell color will not be set until you actually enter a value into the cell.