Access VBA質問箱 IV

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

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


828 / 2272 ツリー ←次へ | 前へ→

【9928】GO TO文?CALL文?題名がよくわからないのですが? TO 07/10/19(金) 11:50 質問[未読]
【9929】Re:GO TO文?CALL文?題名がよくわから... 小僧 07/10/19(金) 15:42 回答[未読]
【9930】Re:GO TO文?CALL文?題名がよくわから... TO 07/10/19(金) 15:56 お礼[未読]
【9931】Re:GO TO文?CALL文?題名がよくわから... Gin_II 07/10/20(土) 5:44 回答[未読]

【9928】GO TO文?CALL文?題名がよくわからな...
質問  TO  - 07/10/19(金) 11:50 -

引用なし
パスワード
   モジュールで同じ処理複数使用する場合どのような仕様がいいか教えてください。
GO TO文を使用しないとだめなのでしょうか?コボルにはPERFORMの記述があるのですがVBAには無いのでしょうか?よろしくお願いします。

例)
IF 番号 = 1 THEN
A = A + 1
B = B + 1
C = C + 1
 ・
 ・
 ・
 ・
Z = Z + 1
END IF


IF 番号A = 1 THEN
A = A + 1
B = B + 1
C = C + 1
 ・
 ・
 ・
 ・
Z = Z + 1
END IF

IF 番号C = 1 THEN
A = A + 1
B = B + 1
C = C + 1
 ・
 ・
 ・
 ・
Z = Z + 1
END IF

下記の処理をモジュールで1記載にしたいのです。
A = A + 1
B = B + 1
C = C + 1
 ・
 ・
 ・
 ・
Z = Z + 1

【9929】Re:GO TO文?CALL文?題名がよくわか...
回答  小僧  - 07/10/19(金) 15:42 -

引用なし
パスワード
   ▼TO さん:
こんにちは。

>モジュールで同じ処理複数使用する場合

返り値が必要な場合は Function プロシジャ、
必要ない場合は Sub プロシジャ を使って処理する事になります。

変数については参照渡しで引き渡してあげるか
広域的に宣言するかのどちらかになりそうですね。


また、呼び出し元についても
A) 必ず 1つのモジュール(やフォーム)でのみ使われるのか

B) 複数のモジュール(やフォーム)から呼び出す事があるのか

によって宣言が変わりますね。


汎用性がある様に複数のモジュールから呼ばれる可能性があるとすると

標準モジュールに

Public Sub 変数に1を足す(AA As Long, BB As Long, CC As Long)
  AA = AA + 1
  BB = BB + 1
  CC = CC + 1
End Sub


フォーム側に

Private Sub コマンド0_Click()
Dim A As Long
Dim B As Long
Dim C As Long


  A = 1
  B = 2
  C = 3
  
  Call 変数に1を足す(A, B, C)
  
  MsgBox "A:" & A & vbCrLf _
     & "B:" & B & vbCrLf _
     & "C:" & C & vbCrLf
  
End Sub


とすると、1 を足された数値が返ってくるかと思われます。


変数自体を Public宣言する方法もありますが、

MSサポートオンラインより
[VBA] Public 宣言された変数の有効期間

h tp://support.microsoft.com/kb/408871/ja

(こちらの掲示板は直リンクが禁止ですので、補完してください。)


あまり推奨された方法ではないかもしれません。

【9930】Re:GO TO文?CALL文?題名がよくわか...
お礼  TO  - 07/10/19(金) 15:56 -

引用なし
パスワード
   小僧 さん:
ありがとうございます。
Function プロシジャを使用して作成してみます。
また何かありましたらよろしくお願いします。

【9931】Re:GO TO文?CALL文?題名がよくわか...
回答  Gin_II  - 07/10/20(土) 5:44 -

引用なし
パスワード
   >コボルにはPERFORMの記述があるのですがVBAには無いのでしょうか?

これに近いのでは、GoSub...Return ステートメント というのがありますね。

828 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078201
(SS)C-BOARD v3.8 is Free