Excelで複数のシートを同じ印刷設定(印刷範囲の指定など)で印刷したい→シート複数選択して、目的の印刷設定で1ページだけ印刷すればOK

習慣化2_9日目

複数のシートを同じ印刷設定で印刷したい

シーン毎に分けた脚本とか、同じ要素だけどシートを分けているものにいて
同じ設定で印刷したかった。

そのときのメモ

設定したかった印刷設定

  • 選択した部分を印刷
  • 余白[狭い]
  • 全ての列を1ページに印刷

白黒なのかカラーなのかや用紙サイズの設定など、プリンター側で設定する項目はプリンター側で設定すればいけるらしい。
今回の設定はExcel側で設定する項目なので、これだとダメっぽい?

方法

タイトルのままだけど、
シートを複数選択した状態で 目的の印刷設定にして 1ページだけ印刷すれば
選択したシートの印刷設定がそれになる。

印刷する1ページを真っ白なページとかにしておけば、紙もインクも無駄にならない。

pythonのtkinterでメモ帳作り_ファイルに更新があったらバックアップする

習慣化2_8日目

どこかで記事をまとめたいが、少しずつ進めたことをメモしていく。

作成した関数

def auto_backup():
    global file
    # ファイルの開かれた方法によってfileの中身が異なるので揃える
    if type(file) != str:
        file = file.name
    # ファイルのパスを取得
    file_path=os.path.dirname(file)
    # 現在のファイル名を取得する
    file_title_now=os.path.basename(file)
    # 現在のファイル名から位置情報・色情報・リマインダー・拡張子を取り除いた文字列を取得する。
    # これで同じファイルかどうか判断する。同じファイル名を使うこともあるかもだけど、まぁいいか。
    file_title_only=re.sub('\(\(.+\)\)|<.+>|【\[.+\]】|.txt', '',file_title_now)

    # もしBACKUPフォルダがなかったら作成する すでにあったら何もしない
    os.makedirs(file_path+'/BACKUP', exist_ok=True)

    # バックアップフォルダ内の同じタイトルファイルをリストで取得する
    backup_file_lists = list(Path(file_path+'/BACKUP').glob(file_title_only+'*.txt'))

    # もしリストが空だったら=初めてのバックアップだったらバックアップして終了
    if backup_file_lists == []:
        shutil.copy2(file, file_path+'/BACKUP/'+file_title_now)
        return

    # リストをファイル更新日で降順並び替え
    backup_file_lists.sort(key=os.path.getmtime, reverse=True)
    # リストの最初にいるファイル名=更新が最新のファイル名を取得する
    backup_file_latest=backup_file_lists[0].name #ic| backup_file_latest: 'as((644x188+104+14)).txt'

    # もし現在のファイルと最新バックアップファイルの内容に差があったらバックアップを実施する
    if not filecmp.cmp(file, file_path+'/BACKUP/'+backup_file_latest, shallow=True) :
        backup_now=datetime.datetime.now().strftime('%Y%m%d%H%M%S') # ic| backup_now: '20211201074127'
        backup_flie_name=re.sub('.txt', backup_now+'.txt',file_title_now)
        shutil.copy2(file, file_path+'/BACKUP/'+backup_flie_name)

参考にしたページ

文字列を置換する

note.nkmk.me

# 複数文字で区切ったりするため、正規表現を使用する
import re
(snip)
        # 現在のファイル名から位置情報・色情報・リマインダー・拡張子を取り除いた文字列を取得する。
        # これで同じファイルかどうか判断する。同じファイル名を使うこともあるかもだけど、まぁいいか。
        file_title_only=re.sub('\(\(.+\)\)|<.+>|【\[.+\]】|.txt', '',file_title_now)

複数パターンを置換したい場合は「|」(パイプ)で区切る。

フォルダ内のファイルを条件付きでリスト取得し、更新日が最新のものを取得する

pathlib Pathについて
note.nkmk.me

Path オブジェクトの更新日ソートについて
itpc.blog.fc2.com

# パスをオブジェクトとして操作・処理するライブラリ
from pathlib import Path
(snip)

        # バックアップフォルダ内の同じタイトルファイルをリストで取得する
        backup_file_lists = list(Path(file_path+'/BACKUP').glob(file_title_only+'*.txt'))

        # リストをファイル更新日で降順並び替え
        backup_file_lists.sort(key=os.path.getmtime, reverse=True)
        # リストの最初にいるファイル名=更新が最新のファイル名を取得する
        backup_file_latest=backup_file_lists[0].name #ic| backup_file_latest: 'as((644x188+104+14)).txt'

ファイルの中身を比較して、違ったら複製する

filecmpについて
docs.python.org

# ファイルを比較するライブラリ
import filecmp
# ファイル移動するときのライブラリ
import shutil
(snip)

    # もし現在のファイルと最新バックアップファイルの内容に差があったらバックアップを実施する
    if not filecmp.cmp(file, file_path+'/BACKUP/'+backup_file_latest, shallow=True) :
        backup_now=datetime.datetime.now().strftime('%Y%m%d%H%M%S') # ic| backup_now: '20211201074127'
        backup_flie_name=re.sub('.txt', backup_now+'.txt',file_title_now)
        shutil.copy2(file, file_path+'/BACKUP/'+backup_flie_name)

いつもありがとうございます!

pythonのtkinterでメモ帳作り_完了したときにファイル名の冒頭に「完了_」を付けて、完了フォルダに移動する

習慣化2_6日目

どこかで記事をまとめたいが、少しずつ進めたことをメモしていく。

作成した関数

def kanryo():
    # はい/いいえを選択するメッセージボックスを表示する
    response = messagebox.askyesno("完了処理", "このノートを完了しますか?")
    # はい=True/いいえ=Falseなので
    if response:
        # ファイルを保存しておく未保存の場合もここで保存できる
        saveFile("self")
        # いま開いているファイルの情報を確認する
        global file
        # ファイルの開かれた方法によってfileの中身が異なるので揃える
        if type(file) != str :
            file = file.name
        # ファイルのパスを取得
        file_path=os.path.dirname(file)
        # 現在のファイル名を取得する
        file_title_now=os.path.basename(file)
        # ファイル名の冒頭に完了_を追加する
        file_title_new=re.sub('^','完了_',file_title_now)
        # もし完了フォルダがなかったら作成する すでにあったら何もしない
        os.makedirs(file_path+'/完了', exist_ok=True)
        # ファイルをリネームしつつ移動
        shutil.move(os.path.join(file_path, file_title_now), os.path.join(file_path+'/完了', file_title_new))
        # 閉じる
        quitApp("self")

参考にしたページ

はい/いいえ の確認とそれぞれの場合の処理

pg-chain.com

# はいいいえのメッセージボックスを表示するライプラリ
from tkinter import messagebox
(snip)
    # はい/いいえを選択するメッセージボックスを表示する
    response = messagebox.askyesno("完了処理", "このノートを完了しますか?")
    # はい=True/いいえ=Falseなので
    if response:
        # はいの場合の処理

冒頭に文字列を挿入する

dot-blog.jp

# 複数文字で区切ったりするため、正規表現を使用する
import re
(snip)

        # ファイル名の冒頭に完了_を追加する
        file_title_new=re.sub('^','完了_',file_title_now)

複数行を処理するときにループでまわすのではなく
flags=re.MULTILINE
を指定するだけでOK というのはどこかで使いたいかも。

ファイルを移動してリネームする

note.nkmk.me

# ファイル移動するときのライブラリ
import shutil
(snip)

        # もし完了フォルダがなかったら作成する すでにあったら何もしない
        os.makedirs(file_path+'/完了', exist_ok=True)
        # ファイルをリネームしつつ移動
        shutil.move(os.path.join(file_path, file_title_now), os.path.join(file_path+'/完了', file_title_new))

いつもありがとうございます!

忙しいと忘れるは同じ漢字で構成されている

習慣化2_4日目

忙しかったり追い込まれたときの方がテンションあがるのは、だいたいの人がそうなのか?
それが好きなことであれば。

「忙しい」は心を亡くすみたいなこというけど、そうじゃなくて、全てを忘れて没頭できるということでもあるのか?

優先順位

習慣化2_3日目

やりたいこととやっておいたほうがいいことがあって、いつもやりたいことを優先しているけど、
今日はやっておいたほうがいいことがやりたいこと今日の自分のために必要なことが気がしたので
そっちをやっておこうと思う。

優先順位とかタスクの順番とか、中々できないものだ。
でもこの「そっちをやっておこうと思う」がそういうことなのか? じゃあできてるのか?

でもこれを書いている時点でやっておいたほうがいいことを置き去りにしているのでやっぱりできてないのかも。