[[20170810130015]] 『Select Caseの使用に関して』(toku) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Select Caseの使用に関して』(toku)

ご相談させて頂きます。
下記のようなマクロを組んでいます。
Select Case Val(wk1.Range("A1"))

 Case 1
 :
 Case 2
 :
 Case Else
 :

A1のセルにはリスト選択で『1回目』『2回目』『3回目』が入っています。
『1回目』『2回目』を選択した場合は正常に機能しますが、
『3回目』を選択すると機能しなくなります。(『1回目』を実行。)
『Case Else』を『Case 3』に変更しても機能せず『1回目』を実行してしまいます。

『3回目』の場合も正常に実行するようなアドバイスを頂けないでしょうか。

よろしくお願い致します。

< 使用 Excel:unknown、使用 OS:unknown >


 Select Case文の前に
 Debug.Print wk1.Range("A1")
 として値がどうなっているか確認されてはどうですか?
(稲葉) 2017/08/10(木) 13:12

 Debug.Print Val(wk1.Range("A1")) 
 こっちのほうがいいですね・・・すみません
(稲葉) 2017/08/10(木) 13:14

稲葉様
アドバイスを頂きありがとうございました。
Debug.Print Val(wk1.Range("A1")) を
Select Case文の前に入れてみましたが変化はありませんでした。
具体的には『1回目』はデータが4つ、『2回目』は2つ
『3回目』は5つのデータが表示するものですが4つの表示のままでした。
ちなみに『Case 3』を『Case 1』にすると5つ表示されましたので、
『Case Else』や『Case 3』が反映されていない気がします。

(toku) 2017/08/10(木) 14:31


 Debug.Print
 の意味を理解していないようなので
 MsgBox Val(wk1.Range("A1")) 
 のほうがいいかもしれない。
 Debug.Printの場合はイミディエイトウィンドウで、MsgBoxの場合は表示されるメッセージボックスでチェックする値を
 確認してくれ。
 (解決法ではなく解決するための情報を得る方法)
(ねむねむ) 2017/08/10(木) 14:35

 ねむねむさんフォローありがとうございます。

 ちゃんと説明すればよかったですね。
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_200.html

 こちら読んでみてください。
(稲葉) 2017/08/10(木) 14:44

稲葉様 ねむねむ様
大変申し訳ございませんでした。
 MsgBox Val(wk1.Range("A1")) を実行しましたところ、
チェックする値が『1』と表示されていました。
(toku) 2017/08/10(木) 15:04

 ではValを外して
 MsgBox wk1.Range("A1")
 ではなんと表示されるだろうか?
(ねむねむ) 2017/08/10(木) 15:07

『3回目』と表示されました。 
(toku) 2017/08/10(木) 15:12

 うーん、ではセルで「3回目」を選択した状態でそのセルをコピーして掲示板に張り付けてみてくれないか?
(ねむねむ) 2017/08/10(木) 15:18

私からもひとつ。以下を実行すると、シート名が表示されるのですが、これは思った通りのものでしょうか?
    MsgBox wk1.Name
(???) 2017/08/10(木) 15:26

 Valで "3回目" が1になる現象が思いつかない・・・
 素直に
 Select Case wk1.Range("A1").Value
     Case "1回目"
     Case "2回目"
     Case "3回目"
 End Select

 とした場合は、想定通りでしょうか?
(稲葉) 2017/08/10(木) 15:38

1回目週点検有

ねむねむさん
説明し易くするために『3回目』と説明させて頂きましたが、実際に使用しそのセルをコピー貼り付けしたものが上記となります。
(toku) 2017/08/10(木) 15:41


???さん
データを入力したシート名(送信側)が表示されました。

(toku) 2017/08/10(木) 15:46


ねむねむさん 稲葉さん
申し訳ございません。
『3回目』に変更し実行すると5つのデータが表示され、正常に起動しました。

この場合『3回目』以外の表示では使用できないという事でしょうか?

(toku) 2017/08/10(木) 15:53


「3回目週点検有」でも構いませんが、「1回目週点検有」では先頭が「1」なのだから、1ですよね? どこも変じゃないと思いますよ。
(???) 2017/08/10(木) 15:59

  >(稲葉) 2017/08/10(木) 15:38
 こちらでのコメントがすべてだと思います
 tokuさんの考えている働きをValは行いません
(___) 2017/08/10(木) 16:00

 もしや、マクロを実行するたびに、挙動が変化するマクロを作りたかった、ということですかね?

 やりたいことを説明いただければ、お力になれることもあると思います。
(稲葉) 2017/08/10(木) 16:03

度々申し訳ございません。

具体的には、
『1回目』はデータが4つ
『2回目』はデータが2つ
『1回目週点検有』はデータが5つ表示をさせたいのです。
(toku) 2017/08/10(木) 16:14


 なるほど 単純に3回目ではないということですね。
 Select Case wk1.Range("A1").Value
     Case "1回目"
     Case "2回目"
     Case "1回目週点検有"
 End Select
 としてください。

(稲葉) 2017/08/10(木) 16:16


稲葉様

思っていた通りに出来ました。
ありがとうございました。
(toku) 2017/08/10(木) 16:28


他の皆様も本当にありがとうございました。

(toku) 2017/08/10(木) 16:30


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.