
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)
-
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
VBAの「To」という語句について
Visual Basic(VBA)
-
-
4
VB.net 文字列から日付型へ変更したい
Visual Basic(VBA)
-
5
C言語 関数、変数の宣言について
C言語・C++・C#
-
6
改行文字「vbCrLf」とは
Visual Basic(VBA)
-
7
質問58753 このコードでうまく動作しません。どうしたら良いですか Private Sub Wor
Visual Basic(VBA)
-
8
算術演算子「¥」の意味について
Visual Basic(VBA)
-
9
Vba FileSystemObject オブジェクトに使って拡張子、BaseNameを取り出す
Visual Basic(VBA)
-
10
【マクロ】変数を使った、文字の種類の変更にて、エラーとなる。
Visual Basic(VBA)
-
11
VBAでFOR NEXT分を Application.OnTimeを使って
Visual Basic(VBA)
-
12
COPYコマンドで、最後に1文字「Hex1A」が付くのはなぜ?外し方は?
その他(プログラミング・Web制作)
-
13
エクセルの改行について
Visual Basic(VBA)
-
14
MOVEコマンドでサブフォルダーからの移動は?
その他(プログラミング・Web制作)
-
15
プログラミングに興味があるのですが、作りたいものはありません。 ゲーム機とかパソコンの中身(ソースコ
その他(プログラミング・Web制作)
-
16
(EXCEL超初心者)EXCELの関数(またはマクロ)で質問です。
Visual Basic(VBA)
-
17
覚えることが少ないプログラミング言語を教えて下さい。
その他(プログラミング・Web制作)
-
18
Vba Declare Functionを使う環境依存文字が化ける
Visual Basic(VBA)
-
19
IT業で開発をされてる方々に質問なんですが、一日に書かれるコード数ってどれくらいですか? また、最近
その他(プログラミング・Web制作)
-
20
プログラム上での行のマージ方法
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA セル間のリンク修正につい...
-
複数のExcelファイルをマージす...
-
【ExcelVBA】5万行以上のデー...
-
VBAでCOPYを繰り返すと、処理が...
-
【VBA】 結合セルに複数画像と...
-
【マクロ】並び替えの範囲が、...
-
vba textboxへの入力について教...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
Vba Array関数について教えてく...
-
VBAの「To」という語句について
-
エクセルのVBAコードについて教...
-
Excelのマクロについて教えてく...
-
以下のプログラムの実行結果は...
-
ExcelのVBAコードについて教え...
-
【VBA】値を変更しながら連続で...
-
VBA 入力箇所指定方法
-
Excel VBA 選択範囲の罫線色の...
-
【マクロ】開いているブックの...
-
vb.net(vs2022)のtextboxのデザ...
-
testファイル内にある複数のpng...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
複数のExcelファイルをマージす...
-
【ExcelVBA】5万行以上のデー...
-
vbsでのwebフォームへの入力制限?
-
vba textboxへの入力について教...
-
Vba セルの4辺について罫線が有...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
Vba Array関数について教えてく...
-
【ExcelVBA】値を変更しながら...
-
【マクロ】開いているブックの...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
エクセルのマクロについて教え...
-
エクセルの改行について
-
VBA 入力箇所指定方法
-
[VB.net] ボタン(Flat)のEnable...
-
VBAでセルの書式を変えずに文字...
-
vb.net(vs2022)のtextboxのデザ...
-
Excelのマクロについて教えてく...
-
改行文字「vbCrLf」とは
おすすめ情報