質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

1595閲覧

保護されたExcelファイルのVBA関数の引数を知る方法

takaotaka

総合スコア5

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/09/15 07:06

編集2020/09/15 07:19

問題点

現在、Pythonのパッケージxlwingsを利用しExcel操作を実現したいのですが、
対象のファイルが保護されており、関数の中身を見ることができません。
関数の名前は分かるので別のボタン処理などは操作できたのですが、
引数が必要なのかチェックボックス処理実行で下記エラーがExcel上のポップアップにて発生してしまいます。

ErrNo:13 型が一致しません。
Automationまでご連絡ください。

そもそも引数が原因なのか分かりませんが、解決策があればご教授ください。

エラー内容

関数実行は以下のようにしています。
実行時、Excel画面のポップアップにてエラーが発生します。

macro = save_wb.macro('SubShpCheckOnOff') macro()

ErrNo:13 型が一致しません。
Automationまでご連絡ください。

.
以下のように適当な引数を渡すとcmd上でエラーが発生します。

macro = save_wb.macro('SubShpCheckOnOff') macro(1,1)
エラー内容 Traceback (most recent call last): File "work.py", line 67, in <module> macro(1,1) File "C:\Users\~~~\AppData\Local\Programs\Python\Python38\lib\site-packages\xlwings\main.py", line 2918, in run return self.app.impl.run(self.macro, args) File "C:\Users\~~~\AppData\Local\Programs\Python\Python38\lib\site-packages\xlwings\_xlwindows.py", line 426, in run return self.xl.Run(macro, *args) File "C:\Users\~~~\AppData\Local\Programs\Python\Python38\lib\site-packages\xlwings\_xlwindows.py", line 66, in __call__ v = self.__method(*args, **kwargs) File "C:\Users\~~~\AppData\Local\Temp\gen_py\3.8\00020813-0000-0000-C000-000000000046x0x1x9.py", line 43199, in Run return self._ApplyTypes_(259, 1, (12, 0), ((12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17)), 'Run', None,Macro File "C:\Users\~~~\AppData\Local\Programs\Python\Python38\lib\site-packages\win32com\client\__init__.py", line 467, in _ApplyTypes_ self._oleobj_.InvokeTypes(dispid, 0, wFlags, retType, argTypes, *args), pywintypes.com_error: (-2147352567, '例外が発生しました。', (0, None, None, None, 0, -2147352562), None)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

まだエラーの原因がわからないので別途質問を投稿させていただきます。

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

投稿2020/09/17 01:44

編集2020/09/17 01:54
takaotaka

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

radames1000

2020/09/17 01:55 編集

回答編集依頼完了
kuma_kuma_

2020/09/17 02:04 編集

了解しました
takaotaka

2020/09/17 01:55

すみません、確かに悪用の可能性もありますね。。迂闊でした。 該当箇所は削除いたしました。
guest

0

一時的に保護解除して目的の関数を参照するしかないのでは?
もしくはExcel作成者に引数情報などを教えてもらっては?

投稿2020/09/17 01:20

DreamTheater

総合スコア1095

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

Excelがプロジェクトのロックでソースが見れない状態では
関数の内容(引数等)を見る事はできません。
(できたらロックの意味がなくなります)

単純にマクロの実行確認が取れていない場合
Excel のマクロのセキュリティ設定を変更する
を参考にしてみてください

ただ

ErrNo:13 型が一致しません。
Automationまでご連絡ください。

このメッセージの形は関数内のエラートラップでメッセージを生成しているようです。

投稿2020/09/15 21:27

kuma_kuma_

総合スコア2506

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問