2014年6月28日土曜日

新しいシートを挿入する。

 マクロの動作結果は以下のとおり。






 コードは以下のとおり。

Sub Main
Dim oSheet As Object
Dim oShtName As String
Dim oDisp as String
  oSheet = ThisComponent.getSheets()
  oShtName = "NewSheet"
  oDisp = "新規Sheet : " & oShtName '& Chr$(10)
  If NOT oSheet.hasByName( oShtName ) Then
  oSheet.insertNewByName( oShtName, 0 )
  oDisp = oDisp & "が挿入されました"
  else
  oDisp = oDisp & "は既に存在しています"
  End If
  msgbox oDisp, 0, "Sheetの挿入"
End Sub


 シートを挿入する前に同一名称のシートがあるかどうかをチェックしている。
 なければ oSheet.insertNewByName( oShtName, 0 ) でシートを先頭に挿入している。

 挿入したシートの使い方としては作業用と出力用の複数を使う予定なので同一名称のシートがある場合には削除をしておきたいので次回はシートの削除だな。

 あとは挿入したいシートを先頭ではなくて最後にするにはどうするのだろうか。
 シートを挿入する場所を指定しているからシートの総数を調べる方法があればできそうだな。

0 件のコメント:

コメントを投稿

MELSECNET/HのリモートI/O局経由のMODBUS(R)通信について

http://fa-faq.mitsubishielectric.co.jp/faq/show/13661  別ネットワークの先にぶら下げるってどういうことだろう。