1

Excel VBA コードを C# に変換しようとしています。このコードは Excel の外部で実行する必要があり、そのために Excel マクロを変換します。変換するコードはこちら

ActiveWindow.Zoom = 85
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = True
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Cells.Select

これが私がこれまでに得たものです:

var excelApp = new Microsoft.Office.Interop.Excel.Application();
excelApp.Visible = true;
excelApp.ActiveWindow.Zoom = 85;
excelApp.Range["A1"].Select();

の下の残りがわかりませんRange("A1").Select。これに関するヘルプ

4

2 に答える 2

2

with ステートメントは VB のみのものです。c# では、変数を作成し、その変数から各プロパティを明示的に呼び出す必要があります。

ActiveWindow.Zoom = 85;
Range["A1"].Select();
Range(Selection, Selection.End(xlToRight)).Select();
Selection.HorizontalAlignment = xlCenter;
Selection.VerticalAlignment = xlBottom;
Selection.WrapText = true;
Selection.Orientation = 0;
Selection.AddIndent = false;
Selection.IndentLevel = 0;
Selection.ShrinkToFit = false;
Selection.ReadingOrder = xlContext;
Selection.MergeCells = false;
Cells.Select();

(これは単なるサンプルです。必要に応じて COM 処理を調整してください)

編集: 2 行目の角かっこを角かっこに変更しました。

于 2013-03-19T20:41:59.793 に答える
0

名前空間「Microsoft.Office.Interop.Excel」が必要です。

using Microsoft.Office.Interop.Excel;

MyClass{
...
    var app = new Application { Visible = true, ScreenUpdating = true, DisplayAlerts = false }; 
    Workbook book = app.Workbooks.Open(path); //path is the fullFileName as string
    Worksheet sheet = book.Worksheets[1];
    Range range = sheet.get_Range("A1", "A1");
    range.Select();
    range.HorizontalAlignment = Constants.xlCenter;
    range.VerticalAlignment = Constants.xlBottom;
    range.WrapText = true;
    range.Orientation = 0;
    range.AddIndent = false;
    range.IndentLevel = 0;
    range.ShrinkToFit = false;
    range.ReadingOrder = Constants.xlContext;
    range.MergeCells = false;
}

楽しめ!

于 2015-06-09T12:51:58.913 に答える