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

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

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

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

TeX

フリーの組版システムで、字や図版などの要素を紙面に配置するという作業をコンピュータで行います

Q&A

1回答

1120閲覧

IguanaTexを使おうとすると、実行時エラー5が出てしまう

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

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

TeX

フリーの組版システムで、字や図版などの要素を紙面に配置するという作業をコンピュータで行います

0グッド

0クリップ

投稿2023/11/23 10:28

編集2023/11/23 10:34

実現したいこと

ここに実現したいことを箇条書きで書いてください。

  • IguanaTexを使えるようにする

前提

PowerPoint中に数式をTeXで書きたいと思い、IguanaTexを使うために、このページ
https://www.jonathanleroux.org/software/iguanatex/download.html
を参考にしながら、インストールを進めました。

github
https://github.com/Jonathan-LeRoux/IguanaTex/releases
からIguanaTex_v1_60_3.ppamをダウンロードし、PowerPointでアドインを導入したあと、IguanaTeXタブのMain Settingsを押すと実行時エラー '5'が出ました。

エラー箇所を探そうと思い、githubからIguanaTex_v1_60_3.pptmをダウンロードし、SetTempFormフォームを実行すると、RegistryAccessモジュール内のQueryValueEx関数でErr.Raise 5が呼び出されていました。

' Determine the size and type of data to be read #If VBA7 Then lrc = RegQueryValueExNULL(lhKey, StrPtr(szValueName), 0&, lType, 0&, cch) #Else lrc = RegQueryValueExNULL(lhKey, szValueName, 0&, lType, 0&, cch) #End If If lrc <> ERROR_NONE Then Err.Raise 5

ERROR_NONE定数が0なのに対し、lrc変数は6となっていました。
(lrc = RegQueryValueExNULL(lhKey, StrPtr(szValueName), 0&, lType, 0&, cch)で6が返ってきています。)
どのようにすれば解決できるでしょうか。

発生している問題・エラーメッセージ

実行時エラー '5': プロシージャの呼び出し、または引数が不正です。

該当のソースコード

ソースコードのどこまでをここに書けばよいか分からなかったため、 QueryValueEx関数のみを書きました。

VBA

1Public Function QueryValueEx(ByVal lhKey As Long, _ 2 ByVal szValueName As String, vValue As Variant) As Long 3 Dim cch As Long 4 Dim lrc As Long 5 Dim lType As Long 6 Dim lValue As Long 7 Dim sValue As String 8 9 On Error GoTo QueryValueExError 10 11 ' Determine the size and type of data to be read 12 #If VBA7 Then 13 lrc = RegQueryValueExNULL(lhKey, StrPtr(szValueName), 0&, lType, 0&, cch) 14 #Else 15 lrc = RegQueryValueExNULL(lhKey, szValueName, 0&, lType, 0&, cch) 16 #End If 17 If lrc <> ERROR_NONE Then Err.Raise 5 18 19 Select Case lType 20 ' For strings 21 Case REG_SZ: 22 #If VBA7 Then 23 ' Dividing by 2 because cch is in Bytes, 24 ' but String is allocated by number of 2-Byte characters 25 sValue = String(cch / 2, 0) 26 lrc = RegQueryValueExString(lhKey, StrPtr(szValueName), 0&, lType, _ 27 StrPtr(sValue), cch) 28 If lrc = ERROR_NONE Then 29 vValue = Left$(sValue, cch / 2 - 1) 30 Else 31 vValue = Empty 32 End If 33 #Else 34 ' For older versions of Office. 35 ' No proper support of Unicode strings, which will be cut 36 sValue = String(cch, 0) 37 lrc = RegQueryValueExString(lhKey, szValueName, 0&, lType, _ 38 sValue, cch) 39 If lrc = ERROR_NONE Then 40 vValue = Left$(sValue, cch - 1) 41 Else 42 vValue = Empty 43 End If 44 #End If 45 ' For DWORDS 46 Case REG_DWORD: 47 #If VBA7 Then 48 lrc = RegQueryValueExLong(lhKey, StrPtr(szValueName), 0&, lType, _ 49 lValue, cch) 50 #Else 51 lrc = RegQueryValueExLong(lhKey, szValueName, 0&, lType, _ 52 lValue, cch) 53 #End If 54 55 If lrc = ERROR_NONE Then vValue = lValue 56 Case Else 57 'all other data types not supported 58 lrc = -1 59 End Select 60 61QueryValueExExit: 62 QueryValueEx = lrc 63 Exit Function 64 65QueryValueExError: 66 Resume QueryValueExExit 67 End Function

補足情報(FW/ツールのバージョンなど)

windows10
Office365
TeX Live2023
IguanaTex_v1_60_3

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

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

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

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

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

nekotail

2023/12/01 17:58

IguanaTex を使ったことがないのにコメントしてよいものか逡巡していますが、ご参考までに思い出したことを書いておきます。 IguanaTex は Ghostscript を利用していると思いますが、TeX Live に付属のものは rungs 経由でないと正常に動作しない可能性があります。 従って、別途インストールする必要があるかもしれませんが、Ghostscript は半角スペース入りのフォルダ(Program Files 等)にインストールすると正常に動作しない場合があります。また、ユーザ名が日本語の場合も正常に動作しない場合があります(正常に動作する場合も少なからずあるのが厄介なところです)。これらのことを点検してみてはいかがでしょうか。
guest

回答1

0

このプラグインは使ったことがありませんが,
plantumlのWORDプラグインを導入した経験からいうと,あまり苦労した記憶がないので
https://github.com/Jonathan-LeRoux/IguanaTex#download-and-install
の情報通りにやるとうまくいくのではないでしょうか?

エラーはマクロからOS側のdll内の関数呼び出しでのエラーなので,
「Windows 1.」の項目にあるTrusted Location (see this Microsft article)からみかもしれません。

追記

あれから自分でもインストールしてみたのですが,あっさり正常に設定画面が表示されてしまいました。
特別にやったことといえば,質問文中にあるリンクの画面(下記画像のような画面)のロックを解除したぐらいです。
アンロック

後,OneDriveや共有フォルダ内等でファイルが共有されているとうまくいかないようなので,原因はそのあたりぐらいですかね。

投稿2023/11/23 12:35

編集2023/11/26 09:55
ujimushi_sradjp

総合スコア2179

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

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

退会済みユーザー

退会済みユーザー

2023/11/23 14:36

Excelのアドインと同じ%appdata%\Microsoft\Addinsに入れて実行していますが、うまく機能しません。
ujimushi_sradjp

2023/11/23 15:34

私の家のPCにはPowerPointが入ってないし,これ以上私から力になれることはないですね。すみません。 自分でも必要性を感じていれば色々調べて協力するんでしょうが, 仕事で内々の説明資料で数式を使う時はTeXのBeamerで作ってしまうし, 逆に社内で他人と共有する時は標準のWORDの数式とかのコピペで済ませてしまうことが多いですかね。 365のWORDの数式は入力にTeXが使えると思いますし… TeXの元資料があればInkscapeを使ってpdfからemfへのフォーマット変換で貼り付けしてしまいますし, 現状私がこの機能を必要な場面がないんですよね…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問