Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12283 / 13646 ツリー ←次へ | 前へ→

【11296】"=" と ":=" は同じでしょうか? ゆたか 04/3/4(木) 20:53 質問
【11298】Re:"=" と ":=" は... IROC 04/3/4(木) 21:57 回答
【11302】Re:"=" と ":=" は... りん 04/3/5(金) 7:53 発言
【11300】Re:"=" と ":=" は... 角田 04/3/4(木) 22:52 回答
【11358】Re:"=" と ":=" は... ゆたか 04/3/6(土) 15:44 質問
【11361】Re:"=" と ":=" は... りん 04/3/6(土) 16:35 発言

【11296】"=" と ":=" は...
質問  ゆたか  - 04/3/4(木) 20:53 -

引用なし
パスワード
   初めまして、初歩的な質問で恐縮ですが、
変数への代入のところで以下の2通りの記述方法を見かけました。
"=" と ":=" は同じでしょうか?

よろしくお願いします。

【11298】Re:"=" と ":=" ...
回答  IROC  - 04/3/4(木) 21:57 -

引用なし
パスワード
   試してみては如何でしょうか?

【11300】Re:"=" と ":=" ...
回答  角田 WEB  - 04/3/4(木) 22:52 -

引用なし
パスワード
   こんにちは。
>初めまして、初歩的な質問で恐縮ですが、
>変数への代入のところで以下の2通りの記述方法を見かけました。
>"=" と ":=" は同じでしょうか?
プログラミング言語によって
 [ := ]を代入演算子、[ = ]を比較演算子(等しい) 
とか
 [ = ]を代入演算子、[ == ]を比較演算子(等しい) 
等と違います。

VBAに関して言えば
 [ = ] 代入式(文字列の代入/算術式)の左辺と右辺を繋ぐ形で使っていれば代入演算子
    比較式の中で使っていれば比較演算子(等しい)

 [ := ] サブルーチン/関数の記述の際に、引数を指定する場合に
     使用する。
     カンマ区切りのみで、引数の並び通りに指定する代わりに、
     [ := ]の左辺に引数の名前/右辺に引数に与える値 を記述する

【11302】Re:"=" と ":=" ...
発言  りん E-MAIL  - 04/3/5(金) 7:53 -

引用なし
パスワード
   おはようございます。

たとえば、こんな試し方。

Sub test()
  Dim ws As Worksheet
  Set ws = Application.Workbooks.Add.Worksheets(1)
  ws.Name = "PASS_TRUE"
  ws.Protect Password:=True 'パスワードはTRUE
  '
  Set ws = Application.Workbooks.Add.Worksheets(1)
  ws.Name = "PASS_FALSE"
  ws.Protect Password = True '実際のパスワードはFALSE
  Set ws = Nothing
End Sub

手動で保護解除してみてください。

【11358】Re:"=" と ":=" ...
質問  ゆたか  - 04/3/6(土) 15:44 -

引用なし
パスワード
   ▼角田 さん:

> [ := ] サブルーチン/関数の記述の際に、引数を指定する場合に
>     使用する。
>     カンマ区切りのみで、引数の並び通りに指定する代わりに、
>     [ := ]の左辺に引数の名前/右辺に引数に与える値 を記述する

少し間が空いてしまいましたが、再度質問です。
関数で使用するというのは分かりましたが、
例えば関数の呼び出しは他の言語のように
以下のように記述することもできると思います。
この記述とはまた違うのでしょうか?
Result = Test(param1, param2)

また、りんさんから提示していただいた、サンプルは
以下のところでエラーになります。
これは
"Protectという関数のパラメータPasswordにFALSEという値を渡そうとしているが
記述が間違っている"
という解釈でよろしいのでしょうか。
ws.Protect Password = True '実際のパスワードはFALSE

【11361】Re:"=" と ":=" ...
発言  りん E-MAIL  - 04/3/6(土) 16:35 -

引用なし
パスワード
   ゆたか さん、こんにちわ


>以下のように記述することもできると思います。
>この記述とはまた違うのでしょうか?
>Result = Test(param1, param2)

ヘルプ(VBリファレンス)より一部引用
引用開始==================
名前付き引数と省略可能な引数の概要
Sub プロシージャまたは Function プロシージャを呼び出すときは、引数をプロシージャの構文で指定されている定義位置に正しい順序で指定するか、構文上の順序とは無関係に、引数の名前を記述して指定します
たとえば、次の Sub プロシージャは、3 つの引数を受け取ります。
Sub PassArgs(strName As String, intAge As Integer, dteBirth As Date)
    Debug.Print strName, intAge, dteBirth
End Sub
次の例のように、各引数をカンマで区切り、構文どおりの正しい位置に指定して、このプロシージャを呼び出すことができます。
PassArgs "Mary", 26, #69-2-21#
また、名前付き引数をそれぞれカンマで区切って、このプロシージャを呼び出すこともできます。
PassArgs intAge:=26, dteBirth:=#69-2-21#, strName:="Mary"
名前付き引数に値を代入するには、引数名、コロンと等号 (:=)、引数に代入する値の順で記述します。
名前付き引数は、省略可能な引数を持つプロシージャを呼び出すときに便利です。名前付き引数を使用すると、省略する引数を示すためにカンマを入れる必要がなくなります。名前付き引数を使用すると、どの引数を渡し、どの引数を省略したかを簡単に知ることができます。

引用終了==================


>"Protectという関数のパラメータPasswordにFALSEという値を渡そうとしているが
>記述が間違っている"
>という解釈でよろしいのでしょうか。
>ws.Protect Password = True '実際のパスワードはFALSE
エラーメッセージはなんと書いてありましたか?
前回のコードをそのまま貼り付けて実行したら、エラーにならず、ちゃんと新しいブックが二つ作成されて保護がかかってますが。(XL97 & WinXP)

12283 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free