アクティブシートのシート番号を取得、設定
アクティブシート番号を取得、アクティブシートを変更するには ActiveSheetプロパティを使います
書式 : Public Property ActiveSheet() As Integer
アクティブ シートのシート番号を取得する変数を設定します。
アクティブにするシート番号 (0 ~) を設定します。
補足 : アクティブ シートは、Excel ファイルを Excel で開いた時に最初に表示されるシートです。
サンプル1
サンプルプログラム
シートを追加する、で追加したシートを削除します。
Dim xlsCr As New ExcelCreator.XlsCreator Dim Msg As String = "" Dim MsgTitle As String = "" Dim FileName As String = "c:\シートサンプル.xls" Try 'ファイルの存在チェック If Not System.IO.File.Exists(FileName) Then Msg = "指定のファイルがありません.." MsgTitle = "ファイルを確認して下さい" MessageBox.Show(Msg, MsgTitle, MessageBoxButtons.OK, MessageBoxIcon.Information) Exit Try End If 'ExcelFileを開く If xlsCr.OpenBook(FileName, "") > -1 Then 'アクティブシート番号を取得します Dim ActiveSheetNo As Integer = xlsCr.ActiveSheet 'シート数を調べて最後のシートをアクティブシートにします xlsCr.ActiveSheet = xlsCr.SheetCount - 1 'ファイルを保存して閉じます xlsCr.CloseBook(True) Else Msg = "指定のExcelファイルが読めません.." MsgTitle = "ファイルを確認して下さい" MessageBox.Show(Msg, MsgTitle, MessageBoxButtons.OK, MessageBoxIcon.Information) End If Catch ex As Exception Throw ex Finally xlsCr.Dispose() End Try
25行目のSheetCountプロパティについてはシート数を取得するを参照
< アクティブシート変更前 >
Sheet1がアクティブシートになっています。
< アクティブシート変更後 >
サンプル実行後、再度表示したところです。
Sheet6がアクティブシートとなっています。
自分が勘違いしていた点
アクティブシートを変更したら、それがカレントシートであると思いこみ、セルに値をセットしていた事がありました。
結果的には意図しないシートが更新されていました。これにより結構混乱したのを覚えています。
以下のヘルプをちゃんと読めばよかったんですが、時間を無駄にしてしまったのを昨日の事のように覚えています。
セルの書式設定や値を設定・取得を行うシートの設定には、SheetNoプロパティを使用します。
(ExcelCreatorヘルプより引用)
サンプルで実験してみましょう
間違いプログラム
22行目と25行目の間に以下の記述を追加します。
xlsCr.Cell("A1").Str = "セルを書き換えました!"
左記の通り、期待した動きにはなりませんので気をつけ下さい。
SheetNoプロパティでカレントシートを変更し、その上で変更作業を行って下さい。
履歴
- 2011/12/01
- 公開