VSTOはVisual Studio Tools for Office の略で、officeのアドインやマクロ付きドキュメントを、VB.netやc#などで記述できるフレームワークです。Visual Studioで開発することができ、VBAとオサラバできるMS公式フレームワークです。
この記事では、c#で、Excelブックのファイルパス、ファイル名、フォルダパスを取得する方法を紹介します。
この記事で取得するもの
この記事では、ローカルドライブに保存されたExcelブックのファイル名、ファイルフルパス、フォルダパスを取得するコードを紹介します。
例えば、C:\Users\Administrator\Documents\Book1.xlsx というファイルがあった場合、
- ファイルフルパス:C:\Users\Administrator\Documents\Book1.xlsx
- ファイル名:Book1.xlsx
- フォルダパス:C:\Users\Administrator\Documents
このようになります。
アクティブワークブックのフルパスを取得するコード
アクティブワークブックのフルパスを取得するには、FullName
プロパティを使用します。
public static string GetFullName()
{
string fullName = Globals.ThisAddIn.Application.ActiveWorkbook.FullName;
return fullName;
}
このコードを使ってファイルフルパスを取得するには以下のようにコードを記述します。
string fullName = "";
fullName = ThisAddIn.GetFullName();
フルパスからファイル名のみ抽出する
フルパスからファイル名を抽出するには、System.IO.Path.GetFileName
メソッドを使用します。ここではVSTOのフレームワークは使用せず一般的なc#プログラミングになります。
string fullName = "";
string fileName = "";
fullName = ThisAddIn.GetFullName();
fileName = System.IO.Path.GetFileName(fullName);
フルパスからフォルダパスを抽出する
フルパスからフォルダパスを抽出するには、同様にc#のメソッドであるGetDirectoryName
を使用します。先ほどのファイルフルパスを引数に渡すことで、フォルダパス部分のみを抽出することができます。
string fullName = "";
string folderPath = "";
fullName = ThisAddIn.GetFullName();
folderPath = System.IO.Path.GetDirectoryName(fullName);
ソースコード全文
ソースコード全文は以下のgithubリポジトリに格納しています。
コンパイルすれば動作しますので、Visual Studioをお持ちの方は遊んでみてください。
【VSTO】c#でExcelアドインやマクロ付きドキュメントを開発するためのサンプルコードをまとめました!ぜひ活用ください!
コメント