その他

VBScriptエラー:この名前の構文が正しくありません。の対処法[No85]

投稿日:

スポンサーリンク

イントロ

Excelの「名前の管理」の名前を削除するスクリプト(バッチファイル:vbs)を実行したら、次のエラーが表示された。

エラー発生個所を確認したが、実行したスクリプトは今まで実行して問題なかった。

エクセルに問題ありと判断。エクセルの「名前の管理」を確認する為に、非表示になっている名前も表示するように次のマクロを実行。


Option Explicit

Public Sub Sample()
    Dim name As Object
    For Each name In Names
        If name.Visible = False Then name.Visible = True
    Next
End Sub

マクロ実行前は空であったが表示された。

名前:「_xlfn.SINGLE」、値「#NAME?」、参照範囲「=#NAME?」、範囲「ブック」、コメント「」

これは「削除」ボタンで削除できたが、エクセルを閉じて開くと(=開きなおすと)、また表示される。これを削除して該当VBSを実行しても同じエラーになる。

行ったこと

エクセルでどのシートが影響しているのか確認の為、一つずつシートを削除し開きなおし、マクロを実行し・・・を繰り返し原因のシートを特定。詳しく調査。

原因

この原因はエクセルに新機能が追加された、アップグレード/バージョンアップによるもののようだ。

「暗黙的なインターセクション演算子:@(アットマーク)」(#動的な配列のサポート)が関係していた。

数式に@が使われているとこの事象が起きるようだ。

対応した手順

1.エラーが発生したら、エクセルを開き、マクロを実行し、「名前の管理」の「名前」を確認する。

2.削除しても復活してしまう、消えない「名前」の「_xlfn.SINGLE」が何故表示されるか原因を探す。

3.2の時、簡単な方法はエクセルの検索画面で「検索場所」を「ブック」にして「検索する文字列」を「@」にし検索する。

4.今回はこうなっていた。

5.「@」を削除して、エクセルを開きなおして、修正した数式の結果が変わっていないか、確認する。今回は変更なかった。

6.再度、「名前の管理」の「名前」を表示させるマクロを実行。無事、表示されなくなった。(VBSも問題なく正常に動作した。)

補足、参考URL

Microsoft(マイクロソフト)のサポートページに重要なことが書いてあった。興味のあるかたはチェックしてください。@を削除して良いかも書いてあります!

また、次の関数でこの事象は発生するようなので、利用している方、利用する方は特に注意したほうが良いと思います。


COLUMN
FILTERXML
FORMULATEXT
FREQUENCY
GROWTH
HYPERLINK
INDEX
INDIRECT
ISFORMULA
LINEST
LOGEST
MINVERSE
MMULT
MODE.MULT
MUNIT
OFFSET
ROW
TRANSPOSE
TREND
カスタム関数

新しい数式で @ 演算子を使用する

@ 演算子を含む動的配列 Excel で数式を作成または編集すると、_xlfn として表示されることがあります。動的な配列 Excel の SINGLE ()。

暗黙的なインターセクション演算子:@ - Office サポート

暗黙的なインターセクション演算子:@ - Office サポート

範囲または配列を返す Excel 関数 - Office サポート

動的配列数式と、こぼれた配列動作 - Office サポート

最後までお付き合いいただきありがとうございます!

この情報が誰かの役にたてれば幸いです。

スポンサーリンク

タグ

-その他

© 2021 BookALittle