[[20220113132149]] 『ユーザーフォームでエラーが発生』(VBA初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ユーザーフォームでエラーが発生』(VBA初心者)

ユーザーフォームを作成して

ThisWorkbookに下記を書き込み実行。

    Private Sub Workbook_Open()
        UserForm1.Show vbModeless
    End Sub

ユーザーフォームが表示されて

OptionButton1、OptionButton2、OptionButton3の
いずれかをマークしてCommandButton1をクリックしても

Call 単独型を集中型に変更 
のところで

コンパイルエラー:
Functionまたは変数が必要です
となります。

どうすればエラーが無くなりますか ?

(標準モジュールには、呼び出される
サブルーチンである「集中型」、「単独型を集中型に変更」は存在しています。)

Private Sub CommandButton1_Click()

    If Me.OptionButton1.Value = True Then
        Call 集中型

    ElseIf Me.OptionButton2.Value = True Then
        Call 単独型を集中型に変更

    ElseIf Me.OptionButton3.Value = True Then
        Unload Me
        Exit Sub
    End If

End Sub

< 使用 アプリ:Excel2021(WIN)、使用 OS:Windows 11 x64 >


このへんかな?

https://www.tipsfound.com/vba/02015
https://www.vba-ie.net/programing/procedure-scope.php
(ドラン) 2022/01/13(木) 13:54


なにが「このへんなのかな?」のポイントが初心者にはピンと来ませんが、
標準モジュールに有るマクロ
    sub 集中型()
    sub 単独型を集計型に変更()
は、いずれもsubの前に何も記載していないので「Public」です。

(試しに、public sub 集中型(),Public sub 単独型を集計型に変更()に変更しても
同じエラーがでます。)

又、以下のようにModule1,Module2を付けてみましたが同じエラーがでました。
Private Sub CommandButton1_Click()

    If Me.OptionButton1.Value = True Then
        Call Module1.集中型

    ElseIf Me.OptionButton2.Value = True Then
        Cal Module2.単独型を集計型に変更

    ElseIf Me.OptionButton3.Value = True Then
        Unload Me
        Exit Sub
    End If

End Sub

すいませんが、URLの貼り付けのどのポイントが見るべきかご指導ください。

(VBA初心者) 2022/01/13(木) 14:33


以下を見ると

https://www.excel.studio-kazu.jp/kw/20070301161935.html

以下で問題なさそうですが、なぜエラーが出るでしょう。
  Private Sub CommandButton1_Click()

    Call 集中型

(VBA初心者) 2022/01/13(木) 15:01


>標準モジュールに有るマクロ
> sub 集中型()
> sub 単独型を集計型に変更()

こういう情報を書いてないのに、開き直っているようなので私はおります。
(ドラン) 2022/01/13(木) 15:02


>サブルーチンである「集中型」、「単独型を集中型に変更」は存在しています。
存在していません。
sub 単独型を集計型に変更() ですよね。

VBEでプロシージャ名にカーソルがある状態でShift+F2でプロシージャに
ジャンプするので、試してみては。
(tkit) 2022/01/13(木) 16:59


プロシージャ名はドランさんが指摘されているようになっていますか。
そのコードを書き出してみてください。
(nm) 2022/01/13(木) 17:05

 コンパイルエラーなんでしょっ?

 Sub 単独型を集計型に変更() 型を集中型に変更() を実際にコンパイルしてみてください。

 それで、原因が判明すると思います。

(半平太) 2022/01/13(木) 17:20


 プロシジャがないかスコープ的に見えないなら、エラーメッセージは
 "Sub または Function が定義されていません"
 なのでは?

 エラーメッセージが
 >Functionまたは変数が必要です
 なら、プロシジャは存在しているはずですが、
 このエラーが Call ステートメントで発生しているのが謎

 状況が再現できないので回答できませんが、このスレッドの進行を注視しております
(´・ω・`) 2022/01/13(木) 17:26

 これってフォームモジュールで呼び出そうとしているのが
 「単独型を集中型に変更」で
      ^^^^
 標準モジュールのプロシージャ名が
 「単独型を集計型に変更」
           ^^^^

 だからじゃないですか?
(通りすがり助六) 2022/01/13(木) 18:11

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.