マクロ/Pythonガイド/Calc/Calcシート

From The Document Foundation Wiki
Jump to navigation Jump to search
This page is a translated version of the page Macros/Python Guide/Calc/Calc sheets and the translation is 60% complete.
Other languages:
English • ‎español • ‎italiano • ‎日本語



目次に戻る

Sheets

このPythonガイドでは、私たちは、次の表記規則を使用します:

  • シートは、文書の内の一つのスプレッドシートです。
  • ワークブックは、Calc文書です。


注意:

便利な関数から、関数msgboxをコピー、あるいは、インポートします。

名前

  • すべてのシート名を取得します。

doc = XSCRIPTCONTEXT.getDocument()
    names = doc.Sheets.ElementNames
    msgbox(names)

ブック内のすべてのシートを数えます。

doc = XSCRIPTCONTEXT.getDocument()
    count = doc.Sheets.Count
    msgbox(count)

すべてのシートを繰り返します

doc = XSCRIPTCONTEXT.getDocument()
    for sheet in doc.Sheets:
        msgbox(sheet.Name)

シートを取得します

  • 現在の文書から、アクティブなシートを取得します

doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.getCurrentController().getActiveSheet()
    msgbox(sheet.Name)

  • 現在の文書から、インデックスで、アクティブなシートを取得します。

sheet = doc.Sheets[0]
    msgbox(sheet.Name)

  • 現在の文書から、名前で、アクティブなシートを取得します

sheet = doc.Sheets['data']
    msgbox(sheet.Name)

アクティブ化

どんなシートにもフォーカスを送信します

doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.Sheets[0]
    doc.getCurrentController().setActiveSheet(sheet)

名前を変更する

  • ユーザーからだけ見える名前を変更します。

sheet = doc.Sheets[0]
    msgbox(sheet.Name)
    sheet.Name = 'OtherName'
    msgbox(sheet.Name)

  • コードからだけ見える名前を変更します。

sheet = doc.Sheets[0]
    msgbox(sheet.CodeName)
    sheet.CodeName = 'Data'
    msgbox(sheet.CodeName)

シートの可視性を設定する

シートを非表示にするには、プロパティIsVisibleFalseに設定します。;そして、表示するには、Trueに設定してください。

sheet = doc.Sheets[0]
    msgbox(sheet.IsVisible)
    sheet.IsVisible = False
    msgbox(sheet.IsVisible)
    sheet.IsVisible = True

パスワード管理

  • パスワードを設定する

sheet = doc.Sheets[0]
    contra = 'letmein'
    sheet.protect(contra)

  • パスワードを削除します

sheet = doc.Sheets[0]
    contra = 'letmein'
    sheet.unprotect(contra)

シートがブックに存在するかどうかを確認します

doc = XSCRIPTCONTEXT.getDocument()
    exists = 'data' in doc.Sheets
    msgbox(exists)

空白の新しいシートを挿入します

insertNewByName(NAME, POSITION)

doc = XSCRIPTCONTEXT.getDocument()
    doc.Sheets.insertNewByName('new', 0)


既存のシートを、ワークブックに挿入します

insertByName(SHEET, POSITION)

doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.createInstance('com.sun.star.sheet.Spreadsheet')
    doc.Sheets.insertByName(sheet, 0)

ワークブック内でシートの位置を移動する

moveByName(NAME, NEW_POSITION)

doc = XSCRIPTCONTEXT.getDocument()
    doc.Sheets.moveByName('new', 3)

ワークブックからシートを削除する

removeByName(NAME)

doc = XSCRIPTCONTEXT.getDocument()
    doc.Sheets.removeByName('new')

空白のシートと入れ替える

replaceByName(NAME, SHEET)

注意:賢く使用してください。この関数は、シートNAMEをまっさらなシートに置き換えます。

doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.createInstance('com.sun.star.sheet.Spreadsheet')
    doc.Sheets.replaceByName('data', sheet)

シートをコピーする

  • シートの名前を変更する

copyByName(SOURCE_NAME, NEW_NAME, POSITION)

注意:新しい名前が、存在する場合、それは、SOURCE_NAME_2という名前のシートをコピーし、どんなエラーも発生しません。

  • 同じ文書にコピーする

doc = XSCRIPTCONTEXT.getDocument()
    doc.Sheets.copyByName('data', 'NewData', 10)

他の文書からコピー(またはインポート)する

importSheet(SOURCE, SOURCE_NAME, POSITION)

source = XSCRIPTCONTEXT.getDocument()

    desktop = app.create_instance('com.sun.star.frame.Desktop', True)
    path = 'private:factory/scalc'
    doc = desktop.loadComponentFromURL(path, '_default', 0, ())

    doc.Sheets.importSheet(source, 'Services', 0)

タブ・シートに色を付けます

注意:

便利な関数から、関数get_colorをコピー、あるいは、インポートします。

sheet = doc.Sheets['Sheet1']
sheet.TabColor = get_color(255, 0, 0)