[[20170524192849]] 『「OK_CLICK1」から「年月入力」に処理が戻ってきax(ゆきだるま) ページの最後に飛ぶ

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

 

『「OK_CLICK1」から「年月入力」に処理が戻ってきません。』(ゆきだるま)

以下のプログラムで、「OK_CLICK1」に移行して、年月入力して「OK」ボタンを
押しても「年月入力」に処理が戻ってきません。
助けてください。

'
Sub 年月入力()

    Set Dia01 = Sheets("D_年月入力")
'
    Dia01.EditBoxes("Bumon_Name").Text = 事業所名
    Dia01.EditBoxes("EDIT_YY").Text = ""
    Dia01.EditBoxes("EDIT_MM").Text = ""
'
    Ok_F01 = False
    Do While Ok_F01 = False
        Dia01.Show
        If Ok_F01 = False Then
            MB = MsgBox(MSG, 48, "ERR")
        End If
    Loop
End Sub
'
Sub OK_CLICK1()
    Set Dia01 = Sheets("D_年月入力")
'
    If Dia01.EditBoxes("EDIT_YY").Text = "" Or Dia01.EditBoxes("EDIT_MM").Text = "" Then
        MSG = "処理年月を入力してください。"
        Exit Sub
    Else
        Nengo = Dia01.EditBoxes("NENGO").Text
        YY = Val(Dia01.EditBoxes("EDIT_YY").Text)
        MM = Val(Dia01.EditBoxes("EDIT_MM").Text)
    End If
    Ok_F01 = True
End Sub

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 これVBAですか?
(カリーニン) 2017/05/24(水) 22:32

 >これVBAですか?

 MSGという変数に惑わされてました。
 私のレスはスルーしてください。
(カリーニン) 2017/05/24(水) 22:35

モジュールレベルでOk_F01が宣言されているか?

Dim Ok_F01
Dim MSG

Sub 年月入力()

Set Dia01 = Sheets("D_年月入力")
・・・

(mm) 2017/05/25(木) 09:36


ご回答ありがとうございます。
以下の通り、宣言しているんですが・・・

「OK_CLICK1」のあと、裏でマクロが動いているようなんですが
「年月入力」の If Ok_F01 = False Then に帰ってきません。

Public Cmp_CD As Long
Public Cmp_NM, Cmp_Name As String
Dim Dia01, Dia02 As Object
Public Ok_F01, Ok_F02 As Boolean
Public Zensya_F01 As Boolean
Public Keikaku_F01 As Boolean
Public Keikaku_F02 As Boolean
'
Sub 年月入力()
'

    Windows("【経理計算書】.xlsm").Activate
'
    Set Dia01 = Sheets("D_年月入力")
'
    Dia01.EditBoxes("Bumon_Name").Text = 事業所名
    Dia01.EditBoxes("EDIT_YY").Text = ""
    Dia01.EditBoxes("EDIT_MM").Text = ""
'
    Ok_F01 = False
    Do While Ok_F01 = False
        Dia01.Show
        If Ok_F01 = False Then
            MB = MsgBox(MSG, 48, "ERR")
        End If
    Loop
End Sub
'
Sub OK_CLICK1()
    Set Dia01 = Sheets("D_年月入力")
'
    If Dia01.EditBoxes("EDIT_YY").Text = "" Or Dia01.EditBoxes("EDIT_MM").Text = "" Then
        MSG = "処理年月を入力してください。"
        Exit Sub
    Else
        Nengo = Dia01.EditBoxes("NENGO").Text
        YY = Val(Dia01.EditBoxes("EDIT_YY").Text)
        MM = Val(Dia01.EditBoxes("EDIT_MM").Text)
    End If
    Ok_F01 = True
End Sub
'
(雪だるま) 2017/05/25(木) 11:47

>>Public Cmp_NM, Cmp_Name As String
>>Dim Dia01, Dia02 As Object
>>Public Ok_F01, Ok_F02 As Boolean

本筋とは逸れますがこの変数宣言はやめましょう。ちゃんとした型で宣言できていません。
同じようにやるなら

Public Cmp_NM As String, Cmp_Name As String
Dim Dia01 As Object, Dia02 As Object
Public Ok_F01 As Boolean, Ok_F02 As Boolean

ですかね?

(名無し) 2017/05/25(木) 12:03


ご指摘、ありがとうございます。
(雪だるま) 2017/05/25(木) 13:19

コメント返信:

[ 一覧(最新更新順) ]


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