私はVBAユーザーですが、Pythonが便利ということで、Pythonを勉強しようと思っています。
ネットではVBAなしでPythonのみでもエクセル自動化ができると記載がありましたが、これは一部のみのはなしか、VBAでできることは、Pythonで完全に再現できるということでしょうか。
VBAに関しては、ただのエクセル操作のみではなく、Windows全体であらゆることをしており、ある程度は熟知しているつもりです。
OSの操作となると、VBAでできることはPythonでできると思いますが、エクセルの操作に関してすべてPythonでできるのか?と気になりました。
つまり、VBAの知識がほとんどなくても、Pythonを熟知していれば、VBAのプロと同じようなことができると思っていいか?という質問でもあります。
No.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
No.1
- 回答日時:
セキュリティのことを考えると、VBAを使うべきだと思います。
少なくとも、EXCELの改変は難しいけど、PythonはEXCELから見て外部プログラムなので、WINDOWSのセキュリティを落とさないと動作しない仕様になってる感じです。
銀行の出金等のお金の絡む業務には使うべきではありません。
入手したPythonが改変されてる可能性は否定できませんし、EXECELが改変されればセキュリティソフトには引っ掛かります。
さて、質問内容ですが、同じことはできないと思います。
EXELVBAでWIDNWOSのAPIを呼び出す機能等は、できますがPythonではできないことはないけど無理なコード書かないといけないと認識しています。
WINDOWS APIが呼び出すことができれば、システムファイルを削除したりパスワード変更したりできますで
危険なプログラムと認識されてノートンとかウイルスバスターには引っ掛かってしまいます。
VBAマクロがつかえないから安易にPythonでという方法は、危険だと思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonでexcelのvbaを作成、実行する方法について Pythonで表の自動集計プログラムを 3 2022/07/09 09:58
- Excel(エクセル) エクセルにサムネイル画像組み込み 2 2022/09/02 17:13
- Excel(エクセル) Excelの数式の質問です。 A列に「redhat 8.0, centOS 7.9, python 4 2023/05/12 19:38
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) エクセル VBA実行中のApplication.ScreenUpdatingについて 3 2023/07/13 21:06
- AJAX RPA(PowerAutomate)の実装について 1 2023/07/31 13:46
- その他(プログラミング・Web制作) Pythonの作業環境・作業フォルダの迅速な設定・指定方法 3 2022/04/01 07:55
- Visual Basic(VBA) VBAで不特定枚数印刷をしたいです。 4 2022/08/02 07:30
- Java EclipseとVisual StudioをPC1台にインストールしただけではPCは重くならない? 3 2022/12/08 15:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
IISワーカープロセスが原因でCP...
-
C#のメモリマップドファイルに...
-
java起動時の日本語引数文字化...
-
JavaアプレットはWebブラウザ上...
-
unzip32.dllの利用について(64b...
-
JSPファイルで生じるエラーをど...
-
Javaでのエラーについて
-
gitでバージョン指定してダウン...
-
EclipseでJavaコンパイラのバー...
-
データベースのデータをTextBox...
-
JavaとAndroidアプリ(Java)違...
-
javaのジェネリックスでTとEの...
-
MSFormsとは何ですか?
-
バイナリファイルの著作権など...
-
VBAの「for i=1 to cells(…」...
-
サイドワインダーのドライバ
-
Eclipseにdllがうまく読み込めない
-
MSCOMCTL.OCXのアップデートの方法
-
javacのコンパイルでファイルが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
IISワーカープロセスが原因でCP...
-
VBのWPFとはなんでしょうか?
-
unzip32.dllの利用について(64b...
-
プラグインとパッチの違いは?
-
意味が分からないエラー
-
帳票出力について
-
java3dが動かない
-
32ビットのアプリで、64ビットO...
-
ASP(VB).NETでの背景色変更
-
ログオフ中でもアプリケーショ...
-
C#のメモリマップドファイルに...
-
AccessとVBの違いについて
-
Java でネイティブアプリケーシ...
-
このVBAでExcelアプリケーショ...
-
HTMLアプリケーションの作成
-
[VB.2005]クライアントからWEB...
-
C++からC#へ
-
JAVAプログラムをWEB表示させる...
-
SurfaceViewの一時停止や再開方法
おすすめ情報