2017-11-20 6 views
0

私は、ワークシートオブジェクトのプロパティに文字列/数値を格納することを意図しています。Excelワークシートのオブジェクトプロパティに文字列または数値を格納する

私は以下のように試しましたが、例外が発生しました。

Excel.Worksheet ws = Globals.ThisWorkbook.Application.ActiveWorkbook.ActiveSheet; 
ws._CodeName = "abc"; 

作業シートオブジェクト

+1

まったく例外はありますか?ワークシートの列のロックと非表示を検討しましたか:https://www.extendoffice.com/documents/excel/1280-excel-protect-hidden-columns.html – PaulF

+0

シート内にある必要がある理由はありますか? – QHarr

+0

@QHarr:シートごとにリクエストIDを格納する必要があります。ユーザーには表示されません。 –

答えて

1

using System; 
using Excel = Microsoft.Office.Interop.Excel; 

class Startup 
{ 
    static void Main() 
    { 
     Excel.Application excelApp = new Excel.Application(); 
     Excel.Workbook wkbReport = Open(excelApp, @"C:\Testing.xlsx"); 
     Excel.Worksheet ws = wkbReport.Worksheets[1]; 
     Console.WriteLine(ws._CodeName); 
     ws.Name = "ABC"; 
     Console.WriteLine("END"); 
     excelApp.Visible = true;   
    } 

    public static Excel.Workbook Open(Excel.Application excelInstance, string fileName, bool readOnly = false, bool editable = true, bool updateLinks = true) 
    { 
     Excel.Workbook book = excelInstance.Workbooks.Open(
      fileName, updateLinks, readOnly, 
      Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
      Type.Missing, editable, Type.Missing, Type.Missing, Type.Missing, 
      Type.Missing, Type.Missing); 
     return book; 
    } 
} 

これは、それは次のようになりますどのようにされて:あなたは、ワークシートの名前を変更したい場合は

しかし、これは可能なシナリオがありますc#でもVBAタグが表示されるので、ワークシートにカスタムプロパティを追加するVBAルーチンを次に示します。

Option Explicit 
Sub foo() 
    Dim WS As Worksheet 
    Dim sCPName As String 
    Dim sCPValue As String 
    Dim I As Long 

Set WS = Worksheets("sheet1") 
    sCPName = "Request ID" 
    sCPValue = 12345 

With WS.CustomProperties 
    For I = 1 To .Count 
     If .Item(I).Name = sCPName Then Exit For 
    Next I 

    If I > .Count Then 
     .Add sCPName, sCPValue 
    Else 
     .Item(I).Value = sCPValue 
    End If 

End With 

End Sub 
+0

@Ron Rosenfeldありがとう –

0

ws._CodeNameにカスタム値を格納するための任意の可能性があるがReadOnlyプロパティ(MSDN Reference)です。したがって、あなたはそれを読むことができ、それを上書きすることはできません。あなたのコードが、

enter image description here

関連する問題