アクティブシートのシート番号を取得、設定
アクティブシート番号を取得、アクティブシートを変更するには 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
- 公開
