
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
【ExcelVBA】5万行以上のデータ比較の効率的な処理方法について
Visual Basic(VBA)
-
5
Visualbasicの現状について教えてください
Visual Basic(VBA)
-
6
VB.net 文字列から日付型へ変更したい
Visual Basic(VBA)
-
7
C言語 関数、変数の宣言について
C言語・C++・C#
-
8
質問58753 このコードでうまく動作しません。どうしたら良いですか Private Sub Wor
Visual Basic(VBA)
-
9
算術演算子「¥」の意味について
Visual Basic(VBA)
-
10
Vba FileSystemObject オブジェクトに使って拡張子、BaseNameを取り出す
Visual Basic(VBA)
-
11
【マクロ】変数を使った、文字の種類の変更にて、エラーとなる。
Visual Basic(VBA)
-
12
改行文字「vbCrLf」とは
Visual Basic(VBA)
-
13
【ExcelVBA】dictionaryの重複判断の基準(セル結合だと違う値として認識される)
Visual Basic(VBA)
-
14
C言語のことです。写真(見にくくてすいません)の下のプログラムを実行したいのですが四行目がおかしいと
C言語・C++・C#
-
15
プログラミングに興味があるのですが、作りたいものはありません。 ゲーム機とかパソコンの中身(ソースコ
その他(プログラミング・Web制作)
-
16
COPYコマンドで、最後に1文字「Hex1A」が付くのはなぜ?外し方は?
その他(プログラミング・Web制作)
-
17
VBAでFOR NEXT分を Application.OnTimeを使って
Visual Basic(VBA)
-
18
(EXCEL超初心者)EXCELの関数(またはマクロ)で質問です。
Visual Basic(VBA)
-
19
エクセルの改行について
Visual Basic(VBA)
-
20
MOVEコマンドでサブフォルダーからの移動は?
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】並び替えの範囲が、...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
Excel VBA 選択範囲の罫線色の...
-
エクセルの改行について
-
改行文字「vbCrLf」とは
-
vbsでのwebフォームへの入力制限?
-
エクセルのVBAコードについて教...
-
Excelマクロで、ピボットテーブ...
-
【ExcelVBA】5万行以上のデー...
-
[Excel VBA]特定の条件で文字を...
-
Excel 範囲指定スクショについ...
-
算術演算子「¥」の意味について
-
Excelのマクロについて教えてく...
-
vbaにてseleniumを使用したedge...
-
VBA ユーザーフォーム ボタンク...
-
Vba セルの4辺について罫線が有...
-
ワードの図形にマクロを登録で...
-
【マクロ】切取りの場合、形式...
-
ExcelVBAでパワポを操作したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
testファイル内にある複数のpng...
-
改行文字「vbCrLf」とは
-
エクセルVBA 検索結果を隣のシ...
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
【マクロ】切取りの場合、形式...
-
【ExcelVBA】5万行以上のデー...
-
ExcelVBAでパワポを操作したい
-
(EXCEL超初心者)EXCELの関数(ま...
-
エクセルの改行について
-
Excelマクロで使うVBAコードを...
-
ワードの図形にマクロを登録で...
-
【マクロ】変数を使った、文字...
-
VBAでFOR NEXT分を Application...
-
VBAの質問(Msgboxについて)です
-
エクセルのVBAコードについて教...
-
Excelマクロで使うVBAコードを...
-
Excelのマクロについて教えてく...
-
VBAの「To」という語句について
-
【マクロ】値を渡されたプロシ...
おすすめ情報