プロが教える店舗&オフィスのセキュリティ対策術

私はVBAユーザーですが、Pythonが便利ということで、Pythonを勉強しようと思っています。

ネットではVBAなしでPythonのみでもエクセル自動化ができると記載がありましたが、これは一部のみのはなしか、VBAでできることは、Pythonで完全に再現できるということでしょうか。

VBAに関しては、ただのエクセル操作のみではなく、Windows全体であらゆることをしており、ある程度は熟知しているつもりです。
OSの操作となると、VBAでできることはPythonでできると思いますが、エクセルの操作に関してすべてPythonでできるのか?と気になりました。

つまり、VBAの知識がほとんどなくても、Pythonを熟知していれば、VBAのプロと同じようなことができると思っていいか?という質問でもあります。

A 回答 (2件)

Windows のアプリケーションには ActiveX (とか COM とか OLE) で外部操作できる仕組みがあります。



Visual Basic for Application は、Microsoft Office 製品のアプリケーション内部で稼働するドメイン固有言語ですが、
大抵の機能は ActiveX を介して、アプリケーション外部からも操作することが出来ます。

Python には Win32 を実行するための拡張がありますので、Active X を介してアプリケーションを操作可能です。
ただし、あくまでもアプリケーション外部から操作する仕組みであるため、カスタム関数作成やイベント処理などの内部処理を記載することはできません。

そもそも用途が異なりますので、両者は目的に応じて適時使い分けるのが良いかと思います。
例) Excel のワークブックを UI として利用 → VBA
例) コマンドプロンプトからコマンド実行 → Python
例) なにかの出力を Excel ワークブック形式で保存 → VBA or Python+xlwings
例) 独自のウィンドウ UI をもつアプリケーション作成 → Python+tk
    • good
    • 0
この回答へのお礼

ありがとうございます!
大変参考になります。

お礼日時:2019/06/05 09:04

セキュリティのことを考えると、VBAを使うべきだと思います。


少なくとも、EXCELの改変は難しいけど、PythonはEXCELから見て外部プログラムなので、WINDOWSのセキュリティを落とさないと動作しない仕様になってる感じです。
銀行の出金等のお金の絡む業務には使うべきではありません。
入手したPythonが改変されてる可能性は否定できませんし、EXECELが改変されればセキュリティソフトには引っ掛かります。
さて、質問内容ですが、同じことはできないと思います。
EXELVBAでWIDNWOSのAPIを呼び出す機能等は、できますがPythonではできないことはないけど無理なコード書かないといけないと認識しています。
WINDOWS APIが呼び出すことができれば、システムファイルを削除したりパスワード変更したりできますで
危険なプログラムと認識されてノートンとかウイルスバスターには引っ掛かってしまいます。
VBAマクロがつかえないから安易にPythonでという方法は、危険だと思っています。
    • good
    • 0
この回答へのお礼

ありがとうございます!
大変参考になります。

お礼日時:2019/06/05 09:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!