• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA プロシージャで値を渡す方法)

VBAプロシージャで値を渡す方法

このQ&Aのポイント
  • エクセルVBAのプロシージャで値を渡す方法について解説します。
  • プロシージャ内で値を渡すためには、引数を使用する必要があります。
  • 具体的な例として、メインのプロシージャから別のプロシージャに値を渡す方法を説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

Private Sub test_main() Dim drink As String Dim alcohol As String drink = "cola" alcohol = "bear" Call test_module(drink, alcohol) End Sub もしくは Private Sub test_main() Call test_module("cola", "beer") End Sub にしてください。 また、一番最初の行に Option Explicit と入れておくと、今回の場合エラーが出るようになるので何かの助けになるでしょう ちなみに、オプションの「変数の宣言を強制する」にしておくと勝手に付加されます それと、以下のページも参考にしてください。 Excelでお仕事 プロシージャ間の変数の受け渡し(その2) http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_200_100.html 変数のスコープはこちらを参考に エクセルVBA講座「変数のすべて」 第5回 変数の適用範囲(スコープ) http://pc.nikkeibp.co.jp/pc21/special/2007_gosa/eg5.shtml またCallは省略することもできます Office TANAKA Callステートメント http://officetanaka.net/excel/vba/statement/Call.htm

dansin_Goo
質問者

補足

回答ありがとうございます。 質問した後、紹介してくれたサイト(エクセルでお仕事)を見つけました。 値を渡すのに drink = "cola" alcohol = "bear" と定義しなければならず、二度手間だなと思っていましたが、 Call test_module("cola", "beer") とすれば、宣言もせずに直に入れたい値を渡せるのですね。 ””でくくればいいのには気がつきませんでした。 ありがとうございます。

その他の回答 (1)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

> drink = "cola" > alcohol = "bear" > と定義しなければならず、二度手間だなと思っていましたが、 定義しているのではなく、質問に書いていた 値「cola」と「beer」は変数「drink」と「alcohol」に代入 をしています > Call test_module("cola", "beer") > とすれば、宣言もせずに直に入れたい値を渡せるのですね。 > ””でくくればいいのには気がつきませんでした。 変数は数値ではなく、文字列です。 だから""でくくるということですので勘違いないようにしてください。 数値の場合は""でくくりません。

専門家に質問してみよう