Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


38782 / 76738 ←次へ | 前へ→

【43088】Re:孫SUB内で プログラム全てを終了する...
回答  neptune  - 06/10/1(日) 21:40 -

引用なし
パスワード
   Endというコマンドがありますが、普通これは使いません。
End ステートメントについてはHelpをご覧ください。
#私は使ったことありませんが、困ったことはないです。

一般的にこのような手法をとります。
Sub A1()
  if B1=false then 'プログラムを実行するか否かを判断 B1 を呼ぶ
    exit sub
   end if
  If attention = 1 Then 'attention=1の場合は、実行=否と判断し、終了する。
    MsgBox "終了", vbExclamation
    Exit Sub '#1
  End If
  
  C1
End Sub

function B1() as boolean 'プログラムを実行するか判断する
  If Cells(1, 1) = 1 Then #2
    attention = 1
    B1=flase
  End If
End function

もうひとつ言えば
Public attention As Byte
などはPublic レベルの変数にはしません。
例えば、こんなやり方もあります。
#Public レベルの変数はバグの元ですから、極力避けるのが定石です。
Sub A1()
dim attention As Byte
  attention =0
  'プログラムを実行するか否かを判断 B1 を呼ぶ
  if B1(attention)=false then
     exit sub
  end if
  If attention = 1 Then 'attention=1の場合は、実行=否と判断し、終了する。
    MsgBox "終了", vbExclamation
    Exit Sub '#1
  End If
  
  C1
End Sub

function B1(buref pData as byte) as boolean 'プログラムを実行するか判断する
  If Cells(1, 1) = 1 Then #2
    pData = 1
    B1=flase
  End If
End function

全体的なロジックについてはわかりませんので、変更可能なところを
変更しただけです。
>#2
って何?
0 hits

【43085】孫SUB内で プログラム全てを終了する方法 こま 06/10/1(日) 21:01 質問
【43087】Re:孫SUB内で プログラム全てを終了する方... [名前なし] 06/10/1(日) 21:35 発言
【43088】Re:孫SUB内で プログラム全てを終了する... neptune 06/10/1(日) 21:40 回答
【43149】Re:孫SUB内で プログラム全てを終了する... こま 06/10/3(火) 19:33 お礼

38782 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free