2

継承されたスプレッドシート (作成日は 1998 年またはそれ以前) で作業しており、ダイアログ シートの参照を変更する必要があります。実行マクロ リストにマクロが表示されない、または同様のもの、シート自体が VBA プロジェクト エクスプローラー ウィンドウに表示されない、これは、ここで読んだ他の質問からの Excel 4.0 マクロのように聞こえます。 . 多くの人が、Excel 4.0 マクロを最初から書き直すことを提案していますが、問題は、マクロが実際に何をするかを知らないことです。

具体的には、マクロはコマンド ボタンにリンクされており、[マクロの割り当て] をクリックすると、[マクロ名] テキスト ボックスにマクロの名前が書き込まれますが、実際にはドロップダウン メニューには表示されません。[マクロ名] テキスト ボックスに同じ名前を入力して、このマクロを別のコマンド ボタンに割り当てようとすると、マクロが使用できないというエラーが表示されます。
(スクリーンショットのリンク: http://imgur.com/HlxvLV2 )

ここでソリューションを使用してみました ( VBE で Excel シートが表示されません)。興味のあるシートは実際にはワークシートではないため、ws をダイアログ シートとして宣言しました。

Public Sub TestAccessToXL4MacroSheet()

Dim ws As DialogSheet
Set ws = ThisWorkbook.ActiveSheet ' succeeds
Debug.Print ws.Name               ' outputs "Macro1"
Set ws = Worksheets("Macro1")     ' fails: "Subscript out of range"

End Sub

その結果、シートの名前が直接のウィンドウに表示されます。(スクリーンショットのリンク: http://imgur.com/C1L2SQP )

これは意図した結果ですか?シート名は既にタブとして表示されているので、VBA エディタでシート自体を表示したい。

4

1 に答える 1

2

XL4 ワークシート (たとえば、macro1 シート) は、VB IDE では表示されません。

Excel でシートを表示するには、表示されているシート タブの 1 つを右クリックし、メニューから [再表示...] コマンドを選択します。macro1シートを選択して「OK」をクリックできます。

または、試してください

Sub ShowAllSheets()
    Dim sh As Worksheet
    For Each sh In ActiveWorkbook.Sheets
        sh.Visible = True
    Next
End Sub

次に、XL4 コードを手動で VBA に変換する必要があります。

于 2013-12-26T12:17:56.473 に答える