VSTOはVisual Studio Tools for Office の略で、officeのアドインやマクロ付きドキュメントを、VB.netやc#などで記述できるフレームワークです。Visual Studioで開発することができ、VBAとオサラバできるMS公式フレームワークです。
この記事では、c#で、Excelブックを読み取り専用にしたり、読み取り専用を解除するコードを紹介します。
ブックのアクセスモード(読み取り専用/書き込み許可)を変更するコード
以下はアクティブワークブックのファイルアクセスを変更する関数です。
public static void ChangeFileAccess(XlFileAccess xl)
{
try
{
Excel.Workbook activeWorkbook = Globals.ThisAddIn.Application.ActiveWorkbook;
activeWorkbook.ChangeFileAccess(xl);
}catch(Exception ex)
{
}
return;
}
catch していて何も書いていないのはバグではなく、未保存のブックに対してコードが実行された場合、無視してほしいためです。
XlFileAccess
は列挙型で、名前空間はMicrosoft.Office.Interop.Excel.XlFileAccess
になります。
オブジェクトのアクセスモードを指定する列挙型で、以下の値をとります。
- xlReadOnly : 読み取り専用になります。
- xlReadWrite : 読み取りと書き込みが可能になります
この関数の使い方
つまり、以下のようにxlReadOnlyを指定して関数を呼び出すと、読み取り専用に変更されます。
ThisAddIn.ChangeFileAccess(Microsoft.Office.Interop.Excel.XlFileAccess.xlReadOnly);
以下のようにxlReadWriteを指定して関数を呼び出すと、読み取り書き込みモードに変更されます。
ThisAddIn.ChangeFileAccess(Microsoft.Office.Interop.Excel.XlFileAccess.xlReadWrite);
ソースコード全文
ソースコード全文は以下のgithubリポジトリに格納しています。
コンパイルすれば動作しますので、Visual Studioをお持ちの方は遊んでみてください。
GitHub - harus0313/cliesx
Contribute to harus0313/cliesx development by creating an account on GitHub.
コメント