/// <summary> /// ExcelファイルのA1セル選択処理 /// 引数1:Excelファイルパス /// </summary> /// <param name="args"></param> /// <returns></returns> public static int Main(string[] args) { //引数チェック if (!CheckArgs(args)) { return(NG); } //Excel起動 WriteLog("Excel起動待ち"); using (Excel.Application excelApplication = new Excel.Application()) { WriteLog("Excel起動"); try { //Excel描画停止(速度改善のため) ExcelBeginUpdate(excelApplication); //対象ファイルを開く WriteLog("ファイル開く"); Excel.Workbook workBook = excelApplication.Workbooks.Open(filePath); //A1セルを選択状態にする WriteLog($"全シート数:{workBook.Sheets.Count}"); for (int i = 1; i <= workBook.Sheets.Count; i++) { WriteLog($"{i}シート目処理中"); //シート取得 Excel.Worksheet sheet = (Excel.Worksheet)workBook.Sheets[i]; WriteLog($"シート名:{sheet.Name}"); //非表示のシートは操作に失敗するので無視する if (sheet.Visible != Excel.Enums.XlSheetVisibility.xlSheetVisible) { continue; } //シートを選択状態にする(こうしないとセル選択に失敗する) sheet.Select(); //倍率を100%に変更 excelApplication.ActiveWindow.Zoom = 100; //スクロールを一番先頭に変更(選択セルを変更しても、スクロールバーの位置が元のままなので、先頭に移動) excelApplication.ActiveWindow.ScrollColumn = 1; excelApplication.ActiveWindow.ScrollRow = 1; //一番左上のA1セルを選択状態に変更 sheet.Range("A1").Select(); } //一番左に存在するシートを選択状態にする WriteLog("一番左のシートを選択"); Excel.Worksheet firstSheet = (Excel.Worksheet)workBook.Sheets[1]; firstSheet.Select(); //保存 WriteLog("保存"); workBook.Save(); workBook.Close(); //Excel終了 excelApplication.Quit(); } catch (Exception ex) { //何らかのエラー発生 WriteLog("例外エラー発生", ex); return(NG); } finally { //Excelを閉じる try { excelApplication.Quit(); excelApplication.Dispose(); } catch { } //例外発生時は無視 } } return(OK); }