メインコンテンツへスキップ

エクセルファイルの作成者を更新する方法

コメント

17件のコメント

  • ISHIJIMA

    プロパティの取得ではBuiltinDocumentPropertiesは出てきましたが

    プロパティの設定ではBuiltinDocumentPropertiesは出てきませんね

    どうなのかな?

  • AIS川島

    アドバンス情報の川島です。ご回答ありがとうございます。

    そうなんです、プロパティの設定に出てこないんです。

    後プロパティの取得でBuiltinDocumentPropertiesを指定すると「read only」と表示されます。

    ひょっとしたら取得はできても更新はできないでしょうか?

    皆さんはこんな処理はしないのでしょうか?

     

  • ISHIJIMA

    やったことないですね

    .NET等で書くしかないのかな・・・

  • Pu

    こんにちはPuです

    BuiltinDocumentPropertiesはCOMなのでプロパティの設定で出てきても良いのですが...

    VSからだと参照でCOM追加できますが

    Magicの中の.netの記述でCOM参照追加の方法が分からないので

    一筋縄ではいかなそうな...僕の能力不足ですが

    VBAがスマートな方法だと思いますが...

    pythonなら超簡単なんですが....

    でわ~でわ~

  • AIS川島

    アドバンス情報の川島です。

    ご回答ありがとうございます。

    やっぱりXPA単体では無理みたいですね。別の手を考えてみます。

    ありがとうございました。

  • ISHIJIMA

    やるとすればEXCELにマクロを仕込んでおいて

    のシートに必要な情報を入れてマクロを実行して情報を変更して

    そのシートおよびマクロを削除してみたいな事でやるのかな

  • Pu

    こんにちは Puです

    全てのbookにvba仕込んでおかないとダメなので面倒ですね。

    私ならMagicからpythonのpgをosコマンドでcallして 引数に book名,変更作成者名

    とします。magicから良くpythonをcallしてますので

    例)call osコマンド     'python.exe '&'pyhonのpg名'&' -x '&'book名'&' -o '&'変更後のowner名' 

    pythonなら7行位の命令で可能でした。

    でわ~でわ~

     

  • ISHIJIMA

    Puさん こんにちは

    >pythonなら7行位の命令で可能でした。

    どんなPGか教えていただく事は可能ですか?

  • Pu

    こんにちはPuです

    book名と変更者名をconstにしたソースを記述します

    (引数、パラメータを受け取る命令を書くとロジックが分かりずらくなると思いますので)

    1分程度で書いたので綺麗にかけてませんが...(^^;

    ----------------------------------------------------------------------------------------------------------------

    from openpyxl import load_workbook
     
    wb = load_workbook('F:/work/TEST.xlsx')
    name = 'マジシャン'
    properties = wb.properties
    properties.creator = name
    properties.lastModifiedBy = name
    wb.save(args.excel)
    ------------------------------------------------------------------
    excelが入ってなくても大丈夫です。
    excelがインストールされていないサーバーなどでexcel等を操作する時に良く使用しています。
    でわ~でわ~
  • ISHIJIMA

    Puさん こんにちは

    早速回答ありがとうございました。

    テストしたら簡単にできました。(すごい・・・・)

    >wb.save(args.excel)

    ここがうまくいかなかったのでwb.save('F:/work/TEST.xlsx')にしました。

  • ISHIJIMA

    Puさん こんにちは

    もしよかったらパラメータの受け取り方教えていただけないでしょうか

  • Pu

    こんにちはPuです 

    >wb.save(args.excel)

    パラメータでの記述が残ってました hahaha(^^;:

    ------------------------------------------------------------------------------------------------

    from openpyxl import load_workbook
    import argparse
    # 引数パーサーの起動
    parser = argparse.ArgumentParser()
    # 引数の取得(型チェック指定あり)
    parser.add_argument('-x',
                        '--excel',
                        default = '',
                        type=str)
    parser.add_argument('-o',
                            '--owner',
                            default = '',
                            type=str)
    args = parser.parse_args()
    args.excel, args.owner
    wb = load_workbook(args.excel)
    name = args.owner
    properties = wb.properties
    properties.creator = name
    properties.lastModifiedBy = name
    wb.save(args.excel)
    ---------------------------------------------------------------------------------------------------------

    python楽すぎてやめられません(^^;

    でわ~でわ~

  • Pu

    ------------------------------------------------------------------------------------------------

    from openpyxl import load_workbook
    import argparse
    # 引数パーサーの起動
    parser = argparse.ArgumentParser()
    # 引数の取得(型チェック指定あり)
    parser.add_argument('-x',
                        '--excel',
                        default = '',
                        type=str)
    parser.add_argument('-o',
                            '--owner',
                            default = '',
                            type=str)
    args = parser.parse_args()
    wb = load_workbook(args.excel)
    name = args.owner
    properties = wb.properties
    properties.creator = name
    properties.lastModifiedBy = name
    wb.save(args.excel)
    ------------------------------------------------------------------------------
    ごめんなさい 上のはtype ミスです。
    でわ~でわ~
  • ISHIJIMA

    Puさん こんにちは

    ありがとうございます。

    これでほとんどの事が応用して出来ますね

    最高です。

    感謝感激です。

     

  • Pu

    こんにちはPuです 

    私はwebアプリのサーバー側で多用しています。

    magicのc/sのように、clientはhtml+javascriptで画面

    サーバー側は、値を受け取ってSQLserverを読んで、内容を返しているだけです。

    クライアント50台とかでもライセンスいらないので(MSJ様に怒られそうですが...)

    IoT(raspi)のアプリも簡単に作れるので重宝しています。(工場の生産ラインに入れてます)

    RPAも出来ますし、データ分析もAIも画像処理も得意な言語です。

    誰が書いてもほぼ同じになるので(規約がある)、ソースの見やすさっていう点ではmagicに似ている気がします。

    でわ~でわ~

     

  • ISHIJIMA

    Puさん こんにちは

    pythonは気になっていたのですが本を買ったりして・・・読んでなくて・・・・

    実際に動かしてみるとわかりやすいですよね

    これから重宝しそうです

  • tanda

    Puさんはいろんな言語をやっておられて、都度情報を提供していただいて本当に助かります。ありがとうございます。

サインインしてコメントを残してください。