マクロ/Pythonガイド/Calc/Calcシート
< Macros | Python Guide | Calc
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Donate
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)
シートの可視性を設定する
シートを非表示にするには、プロパティIsVisible
をFalse
に設定します。;そして、表示するには、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)