不定期戯言

戻る

2019.01.29 (Tue)

橋本治死去

・久しぶりにマストドンに繋いでみたら,橋本治がなくなったという投稿が流れてきた。「桃尻娘」からはじまって,主にエッセイ的なものを十数冊読んだが(有吉佐和子の本を何冊か読んだのも彼の影響),そもそも彼を知ったのは編み物からなんだな。学生時代,編み物に手を出そうと(かぎ針は子供の頃にやっていたので,棒針がやりたかった)適当に買った本の最初のページで,彼のインタビュー記事が紹介されていた。途方もなく細かい編み込みをしたセーターの写真があって,なんとなく憧れたものだった。編み込みってドット絵というかデジタルに通じるものがあるから気に入ったのかな。

・文芸的な方面でのコメントはたくさんあると思うので,全然違う話で書いてみた。彼が有吉佐和子に書いた追悼文にならって,「いつまでもお元気で」と見送りたい。

コメント(0)

コメントの受付は終了しました。

2019.01.23 (Wed)

出席番号の変わり目で改ページ

・マージした表で明らかにおかしいところを直して,出席番号順にソートして印刷…したいのだけど,改ページを入れまくらなければいけない。Excelだったらわかるんだけど,LibreOffice Calcだとどうしていいのかわからない。あちこち検索して,改ページがあるかどうかが調べられることはわかったけど,それを設定する方法がわからない。結局Option VBASupport 1を指定してExcelと同じ書き方をすることでなんとかなった。なんとなく負けた気持ち。

・(追記)「IsStartOfNewPageプロパティでいける」とのコメントをいただいた。確かにプロパティだから,値をセットしてもいいんだよな。そんなわけでこんなコードでうまくいった。Col=3は,キーになる列がD列だからということ。

 Sub Main
  Col= 3
  Doc =ThisComponent
  Sheet = Doc.Sheets(0)
  pre = Sheet.GetCellByPosition(Col, 1).Value
  r = 2
  Do
    Row = Sheet.Rows(r)
    Cell = Sheet.GetCellByPosition(Col,r)
    if Cell.Value <> pre then
      pre = Cell.Value
      Row.IsStartOfNewPage = True
    Else
      Row.IsStartOfNewPage = False
    End if
    r = r + 1
  Loop While pre<>0
End Sub

コメント(2)

参考まで wrote at 2019-01-23 21:46:

LibreOffice Basicならば
LibreOffice macro IsStartOfNewPage
で検索

わたやん wrote at 2019-01-23 22:16:

あ,そうか。あれはプロパティだからbooleanな値をセットしてやればいいんですね。検証して追記します。ありがとうございます。

コメントの受付は終了しました。

2019.01.19 (Sat)

表の結合

・生徒のLT大会が終わったので,評価シートをマージしなくてはいけない。LibreOffice calcの表をそのまま全員分貼り合わせればいいのだが,こんなの手作業でやりたくない。最近Pythonを勉強中なので,それを使ってざくっとコードを書いてみた。odfpyモジュールを使ってみたが,肝心の表読み出しのところが少し面倒だった。

import pathlib
from odf import number,text,table,opendocument

doc = opendocument.OpenDocumentSpreadsheet()
tbl = table.Table(name="評価シート")

p = pathlib.Path(".")

for f in p.glob("2018*.ods"):
    d = opendocument.load(str(f))
    tables = d.spreadsheet.getElementsByType(table.Table)
    for t in tables:
        for r in t.getElementsByType(table.TableRow):
            row = table.TableRow()
            tbl.addElement(row)
            for c in r.getElementsByType(table.TableCell):
                cells = 1
                repeat = c.getAttribute("numbercolumnsrepeated")
                vt = c.getAttribute("valuetype")
                if repeat:
                    cells = int(repeat)
                while cells > 0:
                    cell = table.TableCell(value=c, valuetype=vt)
                    cell.addElement(text.P(text=c))
                    row.addElement(cell)
                    cells -= 1

doc.spreadsheet.addElement(tbl)
doc.save("merge",True)

(こっそり修正)

コメント(0)

コメントの受付は終了しました。

2019.01.14 (Mon)

WaPENの関数呼び出し

・関数呼び出しが今ひとつうまくいかない。とりあえずadd_functionブランチの方では関数呼び出しができるようにはなったけど,ステップ実行や関数内での入力ができないまま。このあたりはうまく整理すればなんとかなるような気はするのだが…。setZeroTimeoutを使わずに別な方法を使えばいいんだろうか。

コメント(0)

コメントの受付は終了しました。

2019.01.13 (Sun)

丁提督

・艦これの冬イベントは丙で行こうと思っていたが,E-3で諦めて途中から丁に切り替えて終了。報酬艦である峯雲と日進の他は浜波と占守が来てくれたから,掘りはもういいや。

コメント(0)

コメントの受付は終了しました。

2019.01.07 (Mon)

なんとか回復

・年が明けて,1日か2日あたりから腹具合が良くなかった。ときどき熱っぽかったりもして。そんなわけでごちそうにあまり手を伸ばせず…昨日1日たっぷり寝てたおかげでだいぶ回復した。体重もちょっと減ったけど,すぐ戻るんだろうなあ。

コメント(0)

コメントの受付は終了しました。