Excel VBA質問箱 IV

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

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


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

【66620】質問メッセージに対するyesno選択 りんご 10/9/15(水) 14:32 質問[未読]
【66621】Re:質問メッセージに対するyesno選択 neptune 10/9/15(水) 15:33 回答[未読]
【66630】Re:質問メッセージに対するyesno選択 りんご 10/9/17(金) 9:24 質問[未読]
【66631】Re:質問メッセージに対するyesno選択 Jaka 10/9/17(金) 9:28 発言[未読]
【66637】Re:質問メッセージに対するyesno選択 neptune 10/9/17(金) 17:11 回答[未読]
【66632】Re:質問メッセージに対するyesno選択 りんご 10/9/17(金) 9:30 お礼[未読]

【66620】質問メッセージに対するyesno選択
質問  りんご E-MAIL  - 10/9/15(水) 14:32 -

引用なし
パスワード
   2003?バージョンでできたマクロ内での条件式が2007?年版で同じように書けなくなって、どうしてよいかわかりません。

 rtn=msgbox(prompt:="このまま印刷をする?",????


このあとは、以前は自動で項目が選択できるリストが出てきて、選ぶだけだったように思うのですが(vbyesno など)、それが出て来ないのは、なぜなのでしょう?

そして、どのように書けば、質問とそれに対する答えの選択ができる形にできるのでしょうか?

教えてくださいませ。
お願いします。

りんご

【66621】Re:質問メッセージに対するyesno選択
回答  neptune  - 10/9/15(水) 15:33 -

引用なし
パスワード
   ▼りんご さん:

>2003?バージョンでできたマクロ内での条件式が2007?年版で同じように書けなくなって、・・・
本当?そんなに使いこんでないので断言はできませんけど、
変わってないように思いますが。。。

簡単なのでサンプル書きました。
Helpにも使用例があるので参考にして下さい。

環境:win7 xl2007

Sub t()
  Dim ret As Integer
  Dim smsg As String
  
  ret = MsgBox("yes,no cancelを選択してね", vbYesNoCancel, "YesNoCancel_test")
  
  Select Case ret
    Case vbYes
      smsg = "yesが押されました。"
    Case vbNo
       smsg = "noが押されました。"
    Case vbCancel
       smsg = "cancelが押されました。"
  End Select
  
  MsgBox smsg, vbOKOnly, "判定結果"
End Sub

>このあとは、以前は自動で項目が選択できるリストが出てきて、選ぶだけだった
>ように思うのですが(vbyesno など)、それが出て来ないのは、なぜなのでしょう?
IDEのインテリセンスの事ですな?そうなら恐らく名前付き引数を使用している
からでは?
私の環境では上記サンプルを書く時、名前付き引数を使っていないので出ましたよ。

【66630】Re:質問メッセージに対するyesno選択
質問  りんご E-MAIL  - 10/9/17(金) 9:24 -

引用なし
パスワード
   ▼neptune さん:
>>このあとは、以前は自動で項目が選択できるリストが出てきて、選ぶだけだった
>>ように思うのですが(vbyesno など)、それが出て来ないのは、なぜなのでしょう?
>IDEのインテリセンスの事ですな?そうなら恐らく名前付き引数を使用している
>からでは?
>私の環境では上記サンプルを書く時、名前付き引数を使っていないので出ましたよ。


ご回答と実際のモジュールを作って示していただきありがとうございました。
使わせていただきます。

ところで
このIDEインテリセンスって全く分からないのですが、きっと会社のPCで作っているので、もともと登録って呼ぶのか分かりませんが、読み込まれていたってことなのでしょうね。
この名前付き引数はどうしたら使用できるようになるのでしょうか?

【66631】Re:質問メッセージに対するyesno選択
発言  Jaka  - 10/9/17(金) 9:28 -

引用なし
パスワード
   >rtn=msgbox(prompt:="このまま印刷をする?",?????
   ↓
rtn=msgbox("このまま印刷をする?"
 で、最後にカンマを入れてみると。

【66632】Re:質問メッセージに対するyesno選択
お礼  りんご E-MAIL  - 10/9/17(金) 9:30 -

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

>IDEのインテリセンスの事ですな?そうなら恐らく名前付き引数を使用している
>からでは?
>私の環境では上記サンプルを書く時、名前付き引数を使っていないので出ましたよ。


すみません。理由がわかりました。buttons って書かなくてはいけないのに、気付かずにずっと button と書いていたので、リスト表示がされなかっただけでした。

でも、そのほかの部分で教えていただいた書き方は、私が書いていたものとは違ったので、新しい書き方が学べて嬉しいです。
ありがとうございました。

【66637】Re:質問メッセージに対するyesno選択
回答  neptune  - 10/9/17(金) 17:11 -

引用なし
パスワード
   ▼りんご さん:
もう見ないかもしれませんけど一応書いておきます。

>このIDEインテリセンスって全く分からないのですが、きっと会社のPCで作っているので、もともと登録って呼ぶのか分かりませんが、読み込まれていたってことなのでしょうね。
すみません、どうもVBEと書いた方が良かったみたいです。

IDEとは
統合開発環境の事で、プログラミングをサポートする色んな環境、機能
の事を纏めて「統合開発環境」と言います。
(VBAではなくVBを含む他言語でもこう呼びます)

その上で概ね VBE = IDE みたいです。

インテリセンスとはIDEの機能の1つで、今回のように
ret=msgbox("hoge",
と打つと入力候補のリスト(リストボックスみたいなやつ)が出ますけど
その機能自体の事を云います。
コマンドを打ち込むと先頭の文字が大文字になったり、その書式がツールチップ
の形で表示されたりしますが、それもIDEの機能の1つです。
ある程度ではありますが、書式のチェックもしてくれますよね。

>この名前付き引数はどうしたら使用できるようになるのでしょうか?
無理だと思います。

ちょっと試してみましたけど、名前付き引数を使用したらインテリセンス
を使用できないのはVBEの仕様と思います。
名前付き引数を使用すると引数を書く順番は関係なくなりますから実際問題
インテリセンスは小さな親切大きなお世話になりかねませんからね。

インテリセンス機能は引数を書く順番が確実な
ret=msgbox("hoge",
みたいに名前付き引数を使用しない場合だけの機能と思って下さい。

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