
Q1
以下の【値を渡されたコード】から、実行すると、プロシージャ選択画面が出ます
当該画面を出さないようには出来ますか???
ちなみに、モジュールには当該2つのコードしか記述ありません
【値を渡されたコード】
Sub あいうえお(ByRef ws As Worksheet)
ws.Cells(1, 1) = "あいうえお"
ws.Cells(1, 2) = "かきくけこ"
End Sub
Q2【値を渡されたコード】から実行し、Sub 別ブックへ転記()プローシジャを選択すると
Sub あいうえお(ByRef ws As Worksheet)のプローシジャだけではなく、Sub 別ブックへ転記()プローシジャ
も実行されてしまいます。当該、動きは仕様でしょうか???
イメージは、Sub あいうえお(ByRef ws As Worksheet)だけ実行したので、他のプローシジャは
実行されないのではないかという、印象があります
【コード】
Sub 別ブックへ転記()
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")
ws1.Cells(2, 1) = "xxx"
Call あいうえお(ws1)
End Sub
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Sub あいうえお(ByRef ws As Worksheet)
ws.Cells(1, 1) = "あいうえお"
ws.Cells(1, 2) = "かきくけこ"
End Sub
No.2ベストアンサー
- 回答日時:
こんにちは
>プロシージャ選択画面が出ます
>当該画面を出さないようには出来ますか???
引数を取るプロシージャは、(引数が指定されないので)直接実行はできません。
(論理的な考えができれば、当然のことだとわかるはずです)
他のプロシージャからでも
Call あいうえお
のように引数を省略して呼び出せば、エラーになります。
((必要な)引数が指定されていないので )
受け取り側で、引数を「省略可能」な引数にしておけば、
Call あいうえお
のように省略しても、デフォルト値で実行するような仕組みにはできますが、手動等で直接実行することはできません。
https://learn.microsoft.com/ja-jp/office/vba/lan …
>Sub 別ブックへ転記()プローシジャ
>も実行されてしまいます。当該、動きは仕様でしょうか???
上記の理由で、引数を取るプロシージャは直接実行できないので、ダイアログに出てくるプロシージャ名には表示されないはずです。
何か勘違いなさっているようですが、ダイアログは「実行するプロシージャを指定」するためのものなので、そこで指定したプロシージャが実行されているだけです。
No.1
- 回答日時:
そもそも、
Sub あいうえお(ByRef ws As Worksheet)
のように引数をもっといる場合、直接、Sub あいうえお を実行することはできないと思いますが、
どうして、そのようなことをなさりたいのでしょうか。
もし、
sub proc1()
call proc2
call proc3
end
sub proc2()
・・・途中省略・・・
end
sub proc3()
・・・途中省略・・・
end
となっていて、proc2,proc3を直接呼び出したいなら、
proc2,proc3は、
①引数を持たないこと
②モジュール変数を参照しないこと
が条件になります。
ご指摘ありがとうございます
引数を受け取るプロシージャ単体では
実行できないんですね
やりたい理由は、引数を受け取った後の動きを、確認したいだけです
なので、渡す側からやれば分かる
のですが、callのプロシージャが
増えてくると、全部のプロシージャが、実行されるとわかりにくいので
単体で、出来ないかなぁと考えました
仕様であればOKです
ありがとうございます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【マクロ】モジュール変数の記述時、Callにて、呼び出されたプロシージャから実行するとエラーとなる?
Visual Basic(VBA)
-
VBAの「To」という語句について
Visual Basic(VBA)
-
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
-
4
Visualbasicの現状について教えてください
Visual Basic(VBA)
-
5
質問58753 このコードでうまく動作しません。どうしたら良いですか Private Sub Wor
Visual Basic(VBA)
-
6
VB.net 文字列から日付型へ変更したい
Visual Basic(VBA)
-
7
算術演算子「¥」の意味について
Visual Basic(VBA)
-
8
Vba FileSystemObject オブジェクトに使って拡張子、BaseNameを取り出す
Visual Basic(VBA)
-
9
C言語 関数、変数の宣言について
C言語・C++・C#
-
10
【マクロ】変数を使った、文字の種類の変更にて、エラーとなる。
Visual Basic(VBA)
-
11
改行文字「vbCrLf」とは
Visual Basic(VBA)
-
12
C言語のことです。写真(見にくくてすいません)の下のプログラムを実行したいのですが四行目がおかしいと
C言語・C++・C#
-
13
プログラミングに興味があるのですが、作りたいものはありません。 ゲーム機とかパソコンの中身(ソースコ
その他(プログラミング・Web制作)
-
14
(EXCEL超初心者)EXCELの関数(またはマクロ)で質問です。
Visual Basic(VBA)
-
15
VBAでFOR NEXT分を Application.OnTimeを使って
Visual Basic(VBA)
-
16
COPYコマンドで、最後に1文字「Hex1A」が付くのはなぜ?外し方は?
その他(プログラミング・Web制作)
-
17
MOVEコマンドでサブフォルダーからの移動は?
その他(プログラミング・Web制作)
-
18
エクセルの改行について
Visual Basic(VBA)
-
19
Cのプログラムからアクセスできないファイル名の一括変更方法
C言語・C++・C#
-
20
アセンブラーの命令についてです。
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
vba textboxへの入力について教...
-
Vba セルの4辺について罫線が有...
-
複数のExcelファイルをマージす...
-
vbsでのwebフォームへの入力制限?
-
VBAでセルの書式を変えずに文字...
-
Vba Array関数について教えてく...
-
【マクロ】開いているブックの...
-
改行文字「vbCrLf」とは
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
エクセルのマクロについて教え...
-
Vba FileSystemObject オブジェ...
-
エクセルのマクロについて教え...
-
【ExcelVBA】値を変更しながら...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
【マクロ】値を渡されたプロシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba Array関数について教えてく...
-
VBAでCOPYを繰り返すと、処理が...
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】シートの変数へ入れ...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教え...
-
【マクロ】並び替えの範囲が、...
-
Vba セルの4辺について罫線が有...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
VBAでユーザーフォームを指定回...
-
【マクロ】開いているブックの...
-
エクセルの改行について
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
算術演算子「¥」の意味について
-
Excelのマクロについて教えてく...
-
改行文字「vbCrLf」とは
-
ワードの図形にマクロを登録で...
-
VBAの「To」という語句について
-
【マクロ】変数を使った、文字...
おすすめ情報