名前付き範囲がワークブックまたは特定のシートにスコープされているかどうかをテストするために、かなり単純なvbaステートメントを試しています。名前付き範囲がワークブックにスコープされているかどうかをプログラマティックに判断
テストとして、私は新しいExcelドキュメントを作成し、6つの名前付き範囲に追加しました。 、
For i = 1 To ThisWorkbook.Names.Count
If ThisWorkbook.Names(i).WorkbookParameter Then Debug.Print ThisWorkbook.Names(i).Name
Next i
は3つのWorkbook
スコープ名前付き範囲につながるログインする:私はその実行を期待
Name | Refers To | Scope
-------------+----------------------+-----------
rng_Local01 | =Sheet1!$A$2:$A$16 | Sheet1
rng_Local02 | =Sheet1!$C$2:$C$16 | Sheet1
rng_Local03 | =Sheet1!$E$2:$E$16 | Sheet1
rng_Global01 | =Sheet1!$B$2:$B$16 | Workbook
rng_Global02 | =Sheet1!$D$2:$D$16 | Workbook
rng_Global03 | =Sheet1!$F$2:$F$16 | Workbook
:ここでは、それらが名マネージャにレイアウトされる方法でありますしかし、何も起こらない。エラーはありません。 .Names(i).WorkbookParameter
は、ALLのFalse
と評価されています。理由はわかりません。しかし、任意の違いを確認しないことの方法を使用して、私はWorkbookParameter
の読み取り専用いとこのように見えますValidWorkbookParameter
に出くわしたVBAのヘルプでName
オブジェクトを通して見ると
。
は、私はまた、明示的ThisWorkbook.Names(i).WorkbookParameter = True
を設定しようとしたが、これはエラーになります:
"Invalid procedure call or argument"
WorkbookParameter
が読む/書く
あるものとして記載されているという事実にもかかわらず、誰でも当てることができます私はそれも期待しているように、なぜこれが動作していないの上の任意の光? Name.WorkbookParameter
はどのように動作するはずですか?誰でもこれを成功させることができますか?
非常に使いやすいソリューションのおかげでありがとう...私はVBAの 'Name'オブジェクトの' WorkbookParameter'と 'ValidWorkbookParameter'プロパティの振る舞いについて、まだ興味があります。私の考えでは、広告されているように、これらのプロパティは機能していません。 –
WorkbookParameterが何であるか正確にはわかりませんが、SharepointのExcel Servicesではクライアントサービスではないと思われます。クライアントExcelではなく、 –