重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Q1標題の件、以下コード❶より実効すると、エラーとなります
モジュール変数の場合は、呼び出し側から実行しないといけないルールですか???

【Callステートメントにて呼び出されたコード❶】
Sub あいうえお()

ws1.Cells(1, 1) = "あいうえお"

End Sub



Q2以下の共通コードを、1回だけしか書かないで、例えば5つのCallで呼び出す
プロシージャで、共同利用する為には、値渡しが有効ですか???
下記の例は、Callが1つしかありません。しかし、実際は5つ位を予定しています


【共通コード】
Dim filpath1 As String

Dim wb1 As Workbook

Dim ws1 As Worksheet

filepath1 = ThisWorkbook.Worksheets("Sheet1").Cells(141, 1)

Set wb1 = Workbooks.Open(filepath1)

Set ws1 = wb1.Worksheets("Sheet1")




【コード】
Dim filpath1 As String

Dim wb1 As Workbook

Dim ws1 As Worksheet
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Sub モジュール変数()


filepath1 = ThisWorkbook.Worksheets("Sheet1").Cells(141, 1)

Set wb1 = Workbooks.Open(filepath1)

Set ws1 = wb1.Worksheets("Sheet1")

Call あいうえお

End Sub
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Sub あいうえお()

ws1.Cells(1, 1) = "あいうえお"

End Sub

A 回答 (2件)

>モジュール変数の場合は、呼び出し側から実行しないといけないルールですか???



原則は、そう考えてください。
Sub あいうえお()の中で、ws1を使用していますが、
これは、呼び出し元で、ws1の内容をきちんと設定しているから、
OKになります。
直接、Sub あいうえお()を呼び出した場合は、ws1の内容がきちんと設定されていないので、エラーになります。
    • good
    • 0

上記の質問を

https://chatgpt.com/ にコピペしてください。
解決します。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A