コンパイルエラー『名前付き引数が見つかりません』の修正方法

このQ&Aのポイント
  • 『名前付き引数が見つかりません』というエラーメッセージが表示される場合、マクロの実行時に引数の指定が正しく行われていない可能性があります。一部の引数が欠落しているか、間違った形式で指定されている場合があります。エラーメッセージで表示されているスクリプトの該当部分を確認し、引数の指定を修正してください。
  • 引数の指定方法は、各引数の名前をコロンで区切り、値を代入する形式です。例えば、'FileName:="ダイジェスト.tab"'のようになります。指定する引数の順序と名前が正しくない場合や、余分なスペースや記号が含まれている場合にもエラーが発生することがあります。
  • また、他の要因として引数のデータ型が一致しない場合もエラーが発生することがあります。引数のデータ型が正しく指定されているか、または必要な変換を行っているかを確認してください。正しいデータ型を指定することでエラーを解消することができます。
回答を見る
  • ベストアンサー

コンパイルエラー『名前付き引数が見つかりません』

これまで使用していた『英語版ワード2003』のnormal.dotファイルを、新たにセットアップした2台のPCの『英語版ワード2003』と『日本語版ワード2002』にコピーしました。その結果、英語版ワードの方はこれ以前に設定したマクロが機能しましたが、日本語版ワードでは、「Microsoft Visual Basic、コンパイルエラー『名前付き引数が見つかりません』」と言うエラー・メッセージがポップアップし、以下のスクリプトの『』部分が反転しました。 ChangeFileOpenDirectory "D:\fmp3\" Documents.Open FileName:="ダイジェスト.tab", ConfirmConversions:=False, ReadOnly _ :=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _ :="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _ , Format:=wdOpenFormatAuto, 『XMLTransform:=』"", Encoding:=1200 Application.Run MacroName:="タブ改行" Application.Run MacroName:="見出し飾り" ChangeFileOpenDirectory "D:\JSDOC\" エラーの意味が理解できないのですが、どのように修正したら上記マクロを正常に機能させることができるでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • calorieta
  • ベストアンサー率36% (8/22)
回答No.2

#1の続きです。 == もう一度、調べなおしてみました。 その関数に関わるエラーについて、状況が絞り込めなかったので 幾つか質問&お願いさせてください。 1)normal.dotファイルをもう一度造りなおしてもエラーが出ますか? http://support.microsoft.com/kb/880656/ja normal.dotファイルを再利用しないと何かすごくまずいのでしょうか? 2)JAVAをインストールしてみても同じでしょうか? http://www.java.com/ja/ XMLTransformで検索すると、JAVA関連の情報がヒットするため、ちょっと怪しいです。 3)「XMLTransform:= "",」を丸ごと削除しても同じエラーが出ますか? 「」の中をそのままDeleteしてみてください。 == よろしくお願いします。

fanzhao
質問者

お礼

>3)「XMLTransform:= "",」を丸ごと削除しても同じエラーが出ますか?「」の中をそのままDeleteしてみてください。 『XMLTransform:="",』削除したところ、エラーが表示されず、マクロが正常に機能しました。ありがとうございました。 >normal.dotファイルを再利用しないと何かすごくまずいのでしょうか? マクロに文書のスタイル等の指定が含めれており、同じスタイルの設定を再現するのが困難なため、normal.dotファイルを丸ごとコピーした次第です。 最初からやり直さねばならないかと、諦めかけていましたが、助かりました。

その他の回答 (1)

  • calorieta
  • ベストアンサー率36% (8/22)
回答No.1

日本語版のワードのバージョンが古いのが原因のようですが。 XML対応を2002ではしていなかった気がします。

fanzhao
質問者

補足

早速、ご回答ありがとうございます。同マクロはもともと『日本語版ワード2002』で作成し、その後『英語版ワード2003』にもコピーして使用していたものですが、日本語版で作成した元のマクロ・スクリプトは遺失してしまいました。 何とか英語版ワード・マクロから日本語版ワード(あるいは2002年版ワード)でも機能するマクロ・スクリプトを復元できないでしょうか。つまり『XMLTransform:=』部分を書き換えることにより、マクロを機能させることはできないでしょうか。

関連するQ&A

  • word 2010でコンパイルエラー

     word 2010でコンパイルエラーが発生します。ヘルプには次のメッセージが出ます。対処方法教えてください。 非表示モジュール <モジュール名> 内でコンパイルエラーが発生しました。 アプリケーション情報 保護されているモジュールにコンパイル エラーがあります。このエラーは、保護されているモジュール内にあるため、表示できません。 このエラーは一般に、実行中のアプリケーションのバージョンまたはアーキテクチャにコードが対応していない場合に発生します (32 ビット版の Microsoft Office アプリケーションを対象としているドキュメント内のコードを 64 ビット版の Office で実行しようとした場合など)。 このエラーの原因と解決方法は次のとおりです。 エラーの原因: このエラーは、VBA コード中の保護されている (非表示) モジュール内にコンパイル エラーがある場合に発生します。該当モジュールが保護されているため、問題となっているコンパイル エラー自体は明示されません。 解決策: ドキュメントまたはプロジェクト内の VBA コードにアクセスできる場合は、該当するモジュールの保護を解除してコードを再実行し、問題となっているエラーを確認します。 ドキュメント内の VBA コードにアクセスできない場合は、ドキュメントの作成者に問い合わせ、非表示モジュール内のコードを更新するように依頼してください。

  • 【Word2000】右クリック「読み取り専用で開く

    ExcelやWordを開いた状態で「読み取り専用で開く」方法は知っていますが、ExcelやWordを開かない状態で「読み取り専用で開く」場合が多いので自分で追加しようとネットで調べて設定してみました。xlsはうまく開けたのですがdocはエラーが出て開けませんでした。 <アクションを実行するアプリケーション>  "C:\Program Files\Microsoft Office 2000\Office\WINWORD.EXE" "%1" <DDEメッセージ>  "[AppShow][REM _DDE_ReadWriteOnSave][FileOpen .Name="%1",.Revert=0,.ReadOnly=1]" どのように設定したらエラー無しに開けるのでしょうか?

  • ワード2003。読み取り専用でないのに、読み取り専用とエラー、Normal.dotの保存が求められるのはなぜ?

    Windows Vista上でMicrosoft Word 2003を使っています。 これまで何の問題もなく使ってきましたが、1,2度プリント時にエラーを出してしまい、その後からワードファイルを開くときにエラー表示、閉じるときにまたエラー表示と、おかしくなってしまいました。対処法を知りたいので、アドバイスをお願いします。以下詳細を書きます。 ワード文書をMicrosoft Office Document Image Writerにてtiff画像として出力、名前を付けて保存ダイアログボックスで保存先を選び実行(この時、だいたいはマイドキュメントに保存するが、たまに手を抜いて直接フロッピーディスクに保存先を指定することもあるのが悪かったか?)、Windows Liveフォトギャラリーが自動的に立ちあがり、出力画像がプレビューされる。 フォトギャラリーが立ち上がるのを待ってられないので、立ち上がりを待たずにワードを終了させようとした時に「すべての印刷ジョブが完了するまでお待ちください。」とエラー表示され、ワードが終了できなかったが、もしかしたらその時に強制的に終了させたかもしれないです。ちなみに終了のさせ方はいつもAlt+F4のショートカットキーを使用。 今困ってるのは、ワードファイルを開ける時に、「このファイルはすでに使用中のため保存できません。(C\Users\ユーザー名\AppData\...\Normal.dot)」と表示され、エラーボックスに用意されているボタンがOKのみなので、OKを押すと、ファイルがとりあえずは開けて読み取り・編集・保存ができます。しかし、ワードを終了するときに、同じエラー画面が表示され、OKを押すと名前を付けて保存のダイアログボックスが開きます。 保存先として開いている場所はユーザー名\AppData\Roaming\Microsoft\Templatesで、ファイル名にNormal.dot、ファイルの種類に文書テンプレート(*.dot)が表示されています。 これをこのまま保存しようとすると、「このファイルは読み取り専用です。(C\Users\ユーザー名\AppData\...\Normal.dot)」と表示されます。保存できないのでキャンセルし、再び終了しようとすると、「全文書対象のNormal.dotテンプレートに影響する変更が行われています。変更を保存しますか?」と表示されます。「はい」を選択すると、再び「このファイルは他のアプリケーションまたはユーザーが使用しています。(C\Users\ユーザー名\AppData\...\Normal.dot)」と表示され、先程のNormal.dotを保存する画面が表示されます。堂々巡りなので、同じ手順にて「全文書対象のNormal.dotテンプレートに影響する変更が行われています。変更を保存しますか?」のメッセージの所まで来てから「いいえ」を選択すると、ワードが終了します。なお、この最後のエラーの画面の所にあるヘルプに掲載の、マイクロソフトサポートページの291352 [ http://support.microsoft.com/kb/291352/ja ]を参照し、Normal.dotの保存画面が表示される原因の一つとしてあげられている、ツールメニュー>オプション>保存タブ上の「標準設定を変更するかどうかを確認する」はすでにオフになっており、また、C\Program Files\Microsoft Office\OFFICE11\STARTUPの中は何も無い状態です。 また、ワードのツール>ユーザー設定>コマンド>ツールからCOMアドインをメニューバーへドラッグし、COMアドインダイアログボックスを表示させると、6つくらいアドインが表示されていましたが、チェックボックスは全てオフでした。 また、ツール>マクロからマクロの一覧を表示させても、何も一覧になく、自動マクロの関係は無さそうです。 既存のファイルを開くときだけではなく、winwordで直接アプリケーションを開けても、同様のエラーが表示されます。終了させる時も同様です。アプリケーションを閉じるときにはエラーが表示されますが、ファイル文書のみを閉じるとき(ctrl+w)は特にエラーは表示されません。あくまでもワードのアプリケーションの起動と終了にエラーが表示されるみたいです。 使用環境としては、スタンドアロンとして使用し(時々Webに接続しアップデートや検索はする)、職場がフラッシュメモリ禁止なので、フロッピーにてデータのやり取りはしています。 自機のセキュリティソフトはMcAfeeのコンポーネント版を使用していますが、これまでのところ手動スキャンによるウィルスの検知はしておりません。

  • イベントマクロで「コンパイルエラー 因数は省略できません」

    マクロ初心者です イベントマクロを作りました Sheet2の結合されたB44:E44のセルに入力すると自動的にマクロが働いて Sheet1のW1の値のみがSheet2の結合されたB44:E44のセルに貼り付けられるマクロなのですが 実行すると「コンパイルエラー 因数は省略できません」と表示されます マクロ自体は正しく動いているのですがどういうことなんでしょう Sheet2 Worksheet Change Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target.Range("B44:E44")) Is Nothing Then Exit Sub Application.EnableEvents = False Sheets(1).Select Range("W1").Copy Sheets(2).Select Range("B44:E44").Select ActiveSheet.Paste Application.CutCopyMode = False Application.EnableEvents = True End Sub Private Sub Worksheet_Change(ByVal Target As Range)…この行が黄色になります If Intersect(Target.Range("B44:E44")) Is Nothing Then Exit Sub…intersectのところが青くなります こんな説明でわかってもらえるでしょうか?

  • VBAのフォームをコンパイルするには

    こんにちは。 お願いします。 XPでワード2003、エクセル2003などのオフィスが使えるようになっています。 以前「VisualBasic6.0」というのを使っていたのですが、ワードやエクセルの「VBA」といいますのはこれと何処が違うのでしょうか。 機能はだいぶ違うように思うのですが、これをマクロの管理や作成ではなく、ユーザー・フォームをコンパイルしてアプリケーションとして使うことはできるのでしょうか。できればこれでワード・エクセルとは切り離した自分のちょっとしたツールを作りたいです。 「コンパイルできるものなのでしょうか」 「できるならば、やり方を教えて下さい」 コンパイルしてしまうならば、やっぱりWD・XEを使わないと編集はできないですよね。 ご存知の方、宜しくお願いします。

  • Excelマクロを引数付で起動

    VB.NET2002を使用しています。 VBよりEXCELマクロを実行できるとこまでは出来たのですが、 excel.Application.Run("Module1!test") VBで処理した値をExcelに渡すことはできないのでしょうか? Run("マクロ名",引数1,引数2,・・・)のように宣言すれば良さそうなのですが、 型のエラーが出てしまいます。 VB上の吹き出しには「As Object」とあるのですが、実際には文字列(string)や数字(long)です。 そのままRun("test",moji,suuji)のようには無理でしょうか。 ちなみにExcelの受け側ですが、 test(byval moji as string,byval num as integer) のようにすれば…と思っていたのですが。 ご存知の方がいらっしゃいましたら教えてください。 お願いいたします。

  • マクロがエラーになります

    下記のようなマクロ使いたいのですがエラーになり   動作しません 実行時エラー'1004': アプリケーション定義またはオブジェクト定義エラー のエラーになりますどのように直せばよいのでしょうか? よろしくお願いします。 Sub test() Dim ReturnMessage As VbMsgBoxResult ReturnMessage = MsgBox("VBEを閉じますか?", vbYesNo, "確認") If ReturnMessage = vbYes Then Application.VBE.MainWindow.Visible = False End If End Sub

  • エクセル マクロ が他のPCでコンパイル エラー

    作成してもらったマクロです、作成者多忙で修正は即不可ですので、何とか解決したいのですが自分はマクロを理解できないので、どなたか教えてください。 症状は現在(仮りにAとします)WinXPで正常に動いております(エクセル2000)このソフトをLAN(仮称B エクセル2003)でも使用しておりましたが、LANでエラー発生。ほか(仮称 C、D)などにAからデータとソフトをコピーしてもエラー発生、現状はAではつかえてますがLANで使いたいので、、 全部のソースは文字数の関係で貼り付け不可ですので エラーらしきところを張りつけます「エラーは非表示モジュラー1でコンパイルエラー」です 1行目で黄色反転して11行目でとまってます。 Private Sub WorkSheet_Delete(Target_Sheet0 As String) 'シート削除 'ActiveBookのシート「Target_Sheet0」があれば「削除」、 '無ければそのまま '無い物を削除実行はアラーム表示となるので On Error GoTo ErrSheetDelete Application.DisplayAlerts = False Worksheets(Target_Sheet0).Delete Application.DisplayAlerts = True GoTo ExitSheetDelete ErrSheetDelete: Error_Number = Err.Number ' その後、オートメーション エラーの発生を調べます。 Msg = "仮台帳がアクティブにできませんSub WorkSheet_Delete。Error_Number=" & Error_Number Err.Clear ' Err オブジェクトのプロパティをクリアします。 ExitSheetDelete: ' 'Stop End Sub

  • エクセル記録したマクロを実行するとエラーがでます

    マクロを記録させ、実行しようとするとエラーがでます。 エラーメッセージは、 「コンパイルエラー 印数は省略できません。」 で、エラー箇所は下記の☆と☆の間です。 End With With ActiveSheet.PageSetup .LeftMargin = Application.InchesToPoints(0.31) .RightMargin = Application.☆InchesToPoints☆() .TopMargin = Application.InchesToPoints() .BottomMargin = Application.InchesToPoints() .HeaderMargin = Application.InchesToPoints() .FooterMargin = Application.InchesToPoints() .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 .PrintErrors = 1620 End With 当方マクロの知識がないもので なぜそうなったのか、どうすれば解決するのかわかりません。 お力を貸して下さい。

  • excel2000マクロエラー

    下記のマクロを実行したときにエラーがでます。 Sheets("売上日報").Select Application.CutCopyMode = False ActiveSheet.Unprotect Sheets("売上日報").Select ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenasios:=True エラーメッセージ アプリケーション定義またはオブジェクト定義のエラーです。 下記のところでマクロがとまります。 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenasios:=True