実現したいこと
pythonを使ったExcelデータの読み書きを行おうとしていますがExcelの「秘密度ラベル」をPythonから設定したいです
前提
・既存のExcelファイル(毎日別Pythonコードで自動更新される)を読み込み、中身を解析・処理して結果を別ファイル保存するPythonコード※があり、今までWindowsのスケジューラでこのコードを毎日深夜帯に自動実行させていました
※Excelデータを pandaのread_excel( )でDataFrameに読み込んだ上で処理していますが、既存Excel側に数式が入っているため、数式セルを値でとるため(pandaのread_excelだと数式セルはNaNになる)にread_excel( )の前に 一度xlwingsで開いてすぐ閉じる(手動保存ライクな動作を実施)といった処理を挟んでいます
・最近会社のルールでExcelドキュメントは「秘密度ラベル」の設定が必須化され(設定しないと保存できない仕組みが導入された)、上記ツール実行するとxlwingsの保存(.save( ))のタイミングで「秘密度ラベル設定」を促すExcelメッセージが出て待ち状態となり最後まで実行されなくなってしまいました
⇒このままでは深夜等に動かす自動化ツールとして使えないのでPythonコードを改良したいというのがやりたいことです
発生している問題・質問
上記を解決するためpythonでExcelの「秘密度ラベル」を設定するサンプルコードをご教示いただきたいです(色々調べたのですが全くヒットせず。。。詳しい方、工夫して実現している方のお知恵を借りたいです)
試したこと
自分なりに下記トライしたのですがいずれもうまくいっていません
①既存のExcelに対して最初に手動で「秘密度ラベルを設定し保存」したうえで上記Pythonコードを実行
⇒確かに1回目はうまくいくものの、なぜか自動化ツールの保存のタイミングで秘密度ラベルが未設定状態にもどるようで2回目以降やっぱり同じ状態に戻ってしまう
②Excelのマクロで「秘密度ラベルを選択するマクロ」を用意し、xlwingsで開いた後にpythonからそのマクロを叩いて保存することも考えたのですが、残念ながら「秘密度ラベルを設定するマクロ」自体がVBAでどう書くのかわからず(マクロ記録機能で操作を記録しようと思ったもののVBAコードとしてこの操作が記録されず。。)
上記①②に限らず良い解決案やサンプルプログラムあればぜひご教示ください
どうぞよろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
python 2.7.14 / Excel office365 環境
回答1件
あなたの回答
tips
プレビュー