Excel VBA質問箱 IV

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

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


1472 / 13644 ツリー ←次へ | 前へ→

【74187】入力表示 愛子 13/4/27(土) 16:05 質問[未読]
【74188】Re:入力表示 UO3 13/4/27(土) 17:24 発言[未読]
【74190】Re:入力表示 愛子 13/4/27(土) 18:34 質問[未読]
【74191】Re:入力表示 UO3 13/4/27(土) 19:15 発言[未読]
【74194】Re:入力表示 愛子 13/4/27(土) 21:09 お礼[未読]
【74200】Re:入力表示 13/4/28(日) 10:36 発言[未読]
【74207】Re:入力表示 愛子 13/4/28(日) 20:27 発言[未読]
【74208】Re:入力表示 愛子 13/4/28(日) 20:28 発言[未読]
【74211】Re:入力表示 13/4/29(月) 6:50 発言[未読]
【74215】Re:入力表示 愛子 13/4/29(月) 20:28 発言[未読]
【74218】Re:入力表示 13/4/30(火) 6:13 発言[未読]
【74220】Re:入力表示 愛子 13/4/30(火) 10:18 発言[未読]
【74228】Re:入力表示 13/4/30(火) 20:07 発言[未読]
【74239】Re:入力表示 愛子 13/5/2(木) 19:04 発言[未読]
【74189】Re:入力表示 13/4/27(土) 18:04 発言[未読]

【74187】入力表示
質問  愛子 E-MAIL  - 13/4/27(土) 16:05 -

引用なし
パスワード
   シートA(印刷範囲:A1からF47)のD2にI2の式が入っています
I2はデータの入力規則を使っています
データは天候の種類を5つ程入れています

現行は数字の入力、印刷等をマクロでしていますが、そのマクロを走らせる前に
上記操作で▼ボタンをクリックして天候を選択する操作のマクロを走らせたいの
です。

そして、メッセージとして「天候を入力して下さい」でマクロは止まります⇒、私が▼ボタンを押して天候を選択します。
選択後にメッセージとして「入力は正しいですか?」はい、いいえ の表示を出してもらいます
はい をクリックすれば次のマクロ(今迄のマクロ)につなげます。
いいえ をクリックすればメッセージとして「正しい天候を入力して下さい」で入力待ちになります。いいえを押すと繰り返しの流れ、はいを押すと今までのマクロを続けます。
色々調べては見たのですが思うようにいきません、宜しくお願いします。

【74188】Re:入力表示
発言  UO3  - 13/4/27(土) 17:24 -

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

こんにちは

まだ、回答というわけではないのですが、いくつか。

>D2にI2の式が入っています

D2には、どんな式が入っているのですか?

>メッセージとして「天候を入力して下さい」でマクロは止まります⇒、
>私が▼ボタンを押して天候を選択します。

基本的に、MsgBoxが表示されている間は、エクセル上の全ての操作ができません。
(ひねくれば、できるようにもなりますが)
ですから▼ボタンもおせません。

>現行は数字の入力、印刷等をマクロでしていますが

そのマクロコードをアップされると、皆さん、考えやすいと思います。

>いいえ をクリックすればメッセージとして「正しい天候を入力して下さい」で
>入力待ちになります

上で申し上げたとおり、入力待ちになっても、入力することができません。

この流れを、制御しようとすれば、ユーザーフォームでの入力が
適しているのかもしれません。

【74189】Re:入力表示
発言    - 13/4/27(土) 18:04 -

引用なし
パスワード
   こんにちは。

不思議なのですが。
I2に何も入っていなければマクロ終了、でいいのではないですか?
何か入っていればメッセージボックスを出して、
いいえをクリックしたらマクロ終了。
はいを押してはじめて、マクロの本体が動き出す。

それで十分だと思いますが?


▼愛子 さん:
>シートA(印刷範囲:A1からF47)のD2にI2の式が入っています
>I2はデータの入力規則を使っています
>データは天候の種類を5つ程入れています
>
>現行は数字の入力、印刷等をマクロでしていますが、そのマクロを走らせる前に
>上記操作で▼ボタンをクリックして天候を選択する操作のマクロを走らせたいの
>です。
>
>そして、メッセージとして「天候を入力して下さい」でマクロは止まります⇒、私が▼ボタンを押して天候を選択します。
>選択後にメッセージとして「入力は正しいですか?」はい、いいえ の表示を出してもらいます
>はい をクリックすれば次のマクロ(今迄のマクロ)につなげます。
>いいえ をクリックすればメッセージとして「正しい天候を入力して下さい」で入力待ちになります。いいえを押すと繰り返しの流れ、はいを押すと今までのマクロを続けます。
>色々調べては見たのですが思うようにいきません、宜しくお願いします。

【74190】Re:入力表示
質問  愛子 E-MAIL  - 13/4/27(土) 18:34 -

引用なし
パスワード
   >▼愛子 さん:
>
>こんにちは
>
>まだ、回答というわけではないのですが、いくつか。
>
>>D2にI2の式が入っています
>
>D2には、どんな式が入っているのですか?
>
>>メッセージとして「天候を入力して下さい」でマクロは止まります⇒、
>>私が▼ボタンを押して天候を選択します。
>
>基本的に、MsgBoxが表示されている間は、エクセル上の全ての操作ができません。
>(ひねくれば、できるようにもなりますが)
>ですから▼ボタンもおせません。
>
>>現行は数字の入力、印刷等をマクロでしていますが
>
>そのマクロコードをアップされると、皆さん、考えやすいと思います。
>
>>いいえ をクリックすればメッセージとして「正しい天候を入力して下さい」で
>>入力待ちになります
>
>上で申し上げたとおり、入力待ちになっても、入力することができません。
>
>この流れを、制御しようとすれば、ユーザーフォームでの入力が
>適しているのかもしれません。

D2には、式は、=I2 です  I2はデータの入力規則を利用しています(天候の種類を必ず選択します。)
その後MsgBoxで選択が間違っているかどうかを表示します。
間違っていればいいえボタンを押してから再度入力をし直します。
そこまでのマクロを作成お願いしたいのですが。
よろしくお願いします。

【74191】Re:入力表示
発言  UO3  - 13/4/27(土) 19:15 -

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

佳さんのコメントはお読みになりましたか?
私も、現行のマクロの先頭で、I2(ないしはD2)の値をチェックして
そこで、空白であれば、天候を選んでから実行してください というメッセージを出して終了。
もし、値があれば、必要なら内容を確認させてNGなら終了。
こんな流れで息ますが?

Sub 現行のマクロ()
  Dim s As Variant
  
  s = Sheets("Sheet1").Range("I2").Value 'シート名は適切なものに
  If IsEmpty(s) Then
    MsgBox "天候を選んでから実行してください"
    Exit Sub
  Else
    If MsgBox("選ばれた天候は " & s & " でした。" & vbLf & _
      "よろしいですか?", vbYesNo) = vbNo Then
      MsgBox "それなら、入れ直してから実行してください"
      Exit Sub
    End If
  End If
  
  '現行のマクロロジック
  
End Sub

【74194】Re:入力表示
お礼  愛子 E-MAIL  - 13/4/27(土) 21:09 -

引用なし
パスワード
   ▼UO3 さん:
>▼愛子 さん:
>
>佳さんのコメントはお読みになりましたか?
>私も、現行のマクロの先頭で、I2(ないしはD2)の値をチェックして
>そこで、空白であれば、天候を選んでから実行してください というメッセージを出して終了。
>もし、値があれば、必要なら内容を確認させてNGなら終了。
>こんな流れで息ますが?
>
>Sub 現行のマクロ()
>  Dim s As Variant
>  
>  s = Sheets("Sheet1").Range("I2").Value 'シート名は適切なものに
>  If IsEmpty(s) Then
>    MsgBox "天候を選んでから実行してください"
>    Exit Sub
>  Else
>    If MsgBox("選ばれた天候は " & s & " でした。" & vbLf & _
>      "よろしいですか?", vbYesNo) = vbNo Then
>      MsgBox "それなら、入れ直してから実行してください"
>      Exit Sub
>    End If
>  End If
>  
>  '現行のマクロロジック
>  
>End Sub


uo3様へ
今晩は、有難うございます。上記VBAにてうまく行きました。感謝致します。

uo3様:佳さんのコメントはお読みになりましたか?----読みましたが、この投稿は初めてだったので、佳様の回答の返信ボタンを押したのですがどこに書き込みをしたらいいのやらまごつきました。やっとボタンをクリックして回答、質問、お礼の箇所がわかり返事(質問)を出しました。佳様がこの投稿を見て頂いているので
あれば、この文面で恐縮ですが、お礼を言わせて下さい。有難うございました。

【74200】Re:入力表示
発言    - 13/4/28(日) 10:36 -

引用なし
パスワード
   愛子さん、こんにちは。佳です。

まず、様はかんべんしてください。
わたしは野蛮人なのでコメントへのお礼はべつに気にしません。

ですが、コメントの内容に対する反応がないのは気にします。

実現されたいことは、まず
 天気が入力されていなければ、データ加工等のホンチャンの処理はしない
 天気が入力されているときだけ、データ加工等のホンチャンの処理へすすむ
ってことですね?
天気が正しいかどうかについては またあとで考えるとして
ここまでで、わたしはなにか誤解していますか?


▼愛子 さん:
>▼UO3 さん:
>>▼愛子 さん:
>>
>>佳さんのコメントはお読みになりましたか?
>>私も、現行のマクロの先頭で、I2(ないしはD2)の値をチェックして
>>そこで、空白であれば、天候を選んでから実行してください というメッセージを出して終了。
>>もし、値があれば、必要なら内容を確認させてNGなら終了。
>>こんな流れで息ますが?
>>
>>Sub 現行のマクロ()
>>  Dim s As Variant
>>  
>>  s = Sheets("Sheet1").Range("I2").Value 'シート名は適切なものに
>>  If IsEmpty(s) Then
>>    MsgBox "天候を選んでから実行してください"
>>    Exit Sub
>>  Else
>>    If MsgBox("選ばれた天候は " & s & " でした。" & vbLf & _
>>      "よろしいですか?", vbYesNo) = vbNo Then
>>      MsgBox "それなら、入れ直してから実行してください"
>>      Exit Sub
>>    End If
>>  End If
>>  
>>  '現行のマクロロジック
>>  
>>End Sub
>
>
>uo3様へ
>今晩は、有難うございます。上記VBAにてうまく行きました。感謝致します。
>
>uo3様:佳さんのコメントはお読みになりましたか?----読みましたが、この投稿は初めてだったので、佳様の回答の返信ボタンを押したのですがどこに書き込みをしたらいいのやらまごつきました。やっとボタンをクリックして回答、質問、お礼の箇所がわかり返事(質問)を出しました。佳様がこの投稿を見て頂いているので
>あれば、この文面で恐縮ですが、お礼を言わせて下さい。有難うございました。

【74207】Re:入力表示
発言  愛子 E-MAIL  - 13/4/28(日) 20:27 -

引用なし
パスワード
   ▼佳 さん:
>愛子さん、こんにちは。佳です。
>
>まず、様はかんべんしてください。
>わたしは野蛮人なのでコメントへのお礼はべつに気にしません。
>
>ですが、コメントの内容に対する反応がないのは気にします。
>
>実現されたいことは、まず
> 天気が入力されていなければ、データ加工等のホンチャンの処理はしない
> 天気が入力されているときだけ、データ加工等のホンチャンの処理へすすむ
>ってことですね?
>天気が正しいかどうかについては またあとで考えるとして
>ここまでで、わたしはなにか誤解していますか?
>
>
>▼愛子 さん:
>>▼UO3 さん:
>>>▼愛子 さん:
>>>
>>>佳さんのコメントはお読みになりましたか?
>>>私も、現行のマクロの先頭で、I2(ないしはD2)の値をチェックして
>>>そこで、空白であれば、天候を選んでから実行してください というメッセージを出して終了。
>>>もし、値があれば、必要なら内容を確認させてNGなら終了。
>>>こんな流れで息ますが?
>>>
>>>Sub 現行のマクロ()
>>>  Dim s As Variant
>>>  
>>>  s = Sheets("Sheet1").Range("I2").Value 'シート名は適切なものに
>>>  If IsEmpty(s) Then
>>>    MsgBox "天候を選んでから実行してください"
>>>    Exit Sub
>>>  Else
>>>    If MsgBox("選ばれた天候は " & s & " でした。" & vbLf & _
>>>      "よろしいですか?", vbYesNo) = vbNo Then
>>>      MsgBox "それなら、入れ直してから実行してください"
>>>      Exit Sub
>>>    End If
>>>  End If
>>>  
>>>  '現行のマクロロジック
>>>  
>>>End Sub
>>
>>
>>uo3様へ
>>今晩は、有難うございます。上記VBAにてうまく行きました。感謝致します。
>>
>>uo3様:佳さんのコメントはお読みになりましたか?----読みましたが、この投稿は初めてだったので、佳様の回答の返信ボタンを押したのですがどこに書き込みをしたらいいのやらまごつきました。やっとボタンをクリックして回答、質問、お礼の箇所がわかり返事(質問)を出しました。佳様がこの投稿を見て頂いているので
>>あれば、この文面で恐縮ですが、お礼を言わせて下さい。有難うございました。

佳さんへ
今晩は、コメントの返事がなかったという事、本当に申し訳ありません。

天候は、絶対に入れないといけないのです(印刷範囲で必要な為)。天候を入れて、Mag Boxで、入力が合っていますか(はい、いいえ)はいを選択すると次のマクロに(数字の転記、印刷等)移ります。いいえだと、正しい天候を入力してくださいと再度入力を要求するようなマクロです。
コメントの返事については、今後注意していきますので、今後ともよろしくお願いします。本当に失礼しました。

【74208】Re:入力表示
発言  愛子 E-MAIL  - 13/4/28(日) 20:28 -

引用なし
パスワード
   佳さんへ
今晩は、コメントの返事がなかったという事、本当に申し訳ありません。

天候は、絶対に入れないといけないのです(印刷範囲で必要な為)。天候を入れて、Mag Boxで、入力が合っていますか(はい、いいえ)はいを選択すると次のマクロに(数字の転記、印刷等)移ります。いいえだと、正しい天候を入力してくださいと再度入力を要求するようなマクロです。
コメントの返事については、今後注意していきますので、今後ともよろしくお願いします。本当に失礼しました。

【74211】Re:入力表示
発言    - 13/4/29(月) 6:50 -

引用なし
パスワード
   こんにちは。

それで結局、昨日書いた私の理解にはどこか誤解があるのでしょうか。
ないのでしょうか。

> 天候は、絶対に入れないといけないのです(印刷範囲で必要な為)。
なるほど。天候は、絶対に入れないといけないのですね。
天候が入っていなければ、コードを動かしても仕方ないってくらい重要ですね?
そう理解していいですか?

(念のため。天候が入っていてそれが正しい場合、正しくない場合については
あとで考えます。いまお尋ねしているのは天候が入っていない場合。
その場合についてのわたしの理解は合っていますか?)


▼愛子 さん:
>佳さんへ
>今晩は、コメントの返事がなかったという事、本当に申し訳ありません。
>
>天候は、絶対に入れないといけないのです(印刷範囲で必要な為)。天候を入れて、Mag Boxで、入力が合っていますか(はい、いいえ)はいを選択すると次のマクロに(数字の転記、印刷等)移ります。いいえだと、正しい天候を入力してくださいと再度入力を要求するようなマクロです。
>コメントの返事については、今後注意していきますので、今後ともよろしくお願いします。本当に失礼しました。

【74215】Re:入力表示
発言  愛子 E-MAIL  - 13/4/29(月) 20:28 -

引用なし
パスワード
   佳さんへ
今晩は、
佳さんの最初の質問で、

I2に何も入っていなければマクロ終了、でいいのではないですか?
何か入っていればメッセージボックスを出して、
いいえをクリックしたらマクロ終了。
はいを押してはじめて、マクロの本体が動き出す。
それで十分だと思いますが?

私:I2には天候が入らなければいけません、したがって上記の記載、I2に何も入っていなければマクロ終了、でいいのではないですか?という佳さんの質問が解らなかったのです(私の質問が悪いのでは?と思いました。)
いいえをクリックしたらマクロ終了ではなく再度正しく入力してください
というようなメッセージに基づき再度天候を選択します。天候が正しければ次のマクロに移ります。そのマクロの書き方が解らなかったのです。そんな折、CO3さんがマクロの書き方を教えて頂いたので、それをまねて完成しました。
佳さんに対して、私がわからなかったらそこで連絡をしなければいけなかったのです、本当にすみませんでした。

【74218】Re:入力表示
発言    - 13/4/30(火) 6:13 -

引用なし
パスワード
   こんにちは。

完成しました? それは良かったですね。

ところで、UO3さんの出されたコードの動きと 愛子さんの当初希望されて
いた動きが微妙に違うことにお気づきでしょうか。
違いはほんの少しで、マクロを使うときにはたぶん気にならないと思いますが
実は、コード作成の難易度は256倍くらい違うんです。

 ・メッセージボックスを出し続ける
 ・そのなかで ユーザーが入力規則のボタンを押すことを許す
これが難しくって(笑)。
とうぜん、あとあとのメンテナンスも難しい。
この仕様がどうしても必要なら仕方ありませんけど、必要じゃないなら
ムダに苦労することはありませんよね。

つまり、最初に「こんなことができたらいいな」と考える時点で、
コードを作りやすいような形に要望を組み立てましょうってことです。


▼愛子 さん:
>佳さんへ
>今晩は、
>佳さんの最初の質問で、
>
>I2に何も入っていなければマクロ終了、でいいのではないですか?
>何か入っていればメッセージボックスを出して、
>いいえをクリックしたらマクロ終了。
>はいを押してはじめて、マクロの本体が動き出す。
>それで十分だと思いますが?
>
>私:I2には天候が入らなければいけません、したがって上記の記載、I2に何も入っていなければマクロ終了、でいいのではないですか?という佳さんの質問が解らなかったのです(私の質問が悪いのでは?と思いました。)
>いいえをクリックしたらマクロ終了ではなく再度正しく入力してください
>というようなメッセージに基づき再度天候を選択します。天候が正しければ次のマクロに移ります。そのマクロの書き方が解らなかったのです。そんな折、CO3さんがマクロの書き方を教えて頂いたので、それをまねて完成しました。
>佳さんに対して、私がわからなかったらそこで連絡をしなければいけなかったのです、本当にすみませんでした。

【74220】Re:入力表示
発言  愛子  - 13/4/30(火) 10:18 -

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

佳さんの発言:
ところで、UO3さんの出されたコードの動きと 愛子さんの当初希望されて
いた動きが微妙に違うことにお気づきでしょうか。---愛子:わかりません。

 ・メッセージボックスを出し続ける
 ・そのなかで ユーザーが入力規則のボタンを押すことを許す
これが難しくって(笑)。

愛子:最初は私自信でマクロを利用するつもりでした。その時は入力規則のボタンを押した後は、何も変化はありませんが、マクロを実行するボタンを再度押せば、マクロが続いて走ります。しかし、他の人にも利用していただこうと思った時には、入力規則のボタンを押した後、何も変化がないのは、他の人はどうしていいのかわからない為に、私は、メーッセージを付加えました。それは、「天候を選択して下さい、その後にマクロボタンを押して下さい」
そうしたならば、他の人が利用した場合に、スムーズに行きました。

佳さんの発言:
つまり、最初に「こんなことができたらいいな」と考える時点で、
コードを作りやすいような形に要望を組み立てましょうってことです。

愛子:本当にそうですね、しかしコードの知識がない私にとってコードを作りやすいような形に要望するのは難しいですね、勿論、自分が要望するときには、一生懸命にわかっていただけるように考えるのですが、そこにはロジックがわからない為に、回答者に考える負担を与えていると思います。
でも次回からはその辺も勉強して回答者に理解を得られるように頑張っていきます。最後になりますが、「最初に「こんなことができたらいいな」と考える時点で、コードを作りやすいような形に要望を組み立てましょうってことです。」は、
私にとって足らない部分を教えて頂いた事、感謝です。有難うございました。

【74228】Re:入力表示
発言    - 13/4/30(火) 20:07 -

引用なし
パスワード
   こんにちは。

おや? 違いが感じられませんか。わたしが読み間違えていたのかな?

愛子さんの最初のご要望は、「天気を入力して下さい」とメッセージ
ボックスがでて、入力をしたら、その瞬間にまたメッセージボックスが
出て「その天気で合っていますか」と聞いてきて欲しい、正しく入力
できるまで何度でも何度でも繰り返しメッセージボックスが出て欲しい
と読めました。

いまの動きは、「天気を入力して下さい」とメッセージボックスがでたら
そこまででコードはいったん終わります。天気を入力をしたら、ユーザー
さんがもう一度マクロボタンを押さないといけません。


> コードの知識がない私にとってコードを作りやすいような形に要望するのは難しいですね
そうですね。知識がないとむつかしいでしょうね。
だから、このさい、少しだけご自分でコードを作ってみませんか。
というと、すごく大変なことのように感じられると思いますが。
ごく初歩的なところを少しだけ。初歩的なところなら簡単ですから。

それで少ーしだけ書けるようになったらば、この書けるようになったことを
使って何ができるだろうか、と考えてみるんです。
できること から考えをスタートしますから、たいていうまくいきます。
もちろん、複雑なことはできませんが。

そして、比較的簡単な要望とそうでない要望の見極めができるようになります。
ま、いつもコードを書いて下さるかたがたは「難しいからイヤだな」なんて
思われないとは思いますけど。


▼愛子 さん:
>佳さん
>おはようございます。
>
>佳さんの発言:
>ところで、UO3さんの出されたコードの動きと 愛子さんの当初希望されて
>いた動きが微妙に違うことにお気づきでしょうか。---愛子:わかりません。
>
> ・メッセージボックスを出し続ける
> ・そのなかで ユーザーが入力規則のボタンを押すことを許す
>これが難しくって(笑)。
>
>愛子:最初は私自信でマクロを利用するつもりでした。その時は入力規則のボタンを押した後は、何も変化はありませんが、マクロを実行するボタンを再度押せば、マクロが続いて走ります。しかし、他の人にも利用していただこうと思った時には、入力規則のボタンを押した後、何も変化がないのは、他の人はどうしていいのかわからない為に、私は、メーッセージを付加えました。それは、「天候を選択して下さい、その後にマクロボタンを押して下さい」
>そうしたならば、他の人が利用した場合に、スムーズに行きました。
>
>佳さんの発言:
>つまり、最初に「こんなことができたらいいな」と考える時点で、
>コードを作りやすいような形に要望を組み立てましょうってことです。
>
>愛子:本当にそうですね、しかしコードの知識がない私にとってコードを作りやすいような形に要望するのは難しいですね、勿論、自分が要望するときには、一生懸命にわかっていただけるように考えるのですが、そこにはロジックがわからない為に、回答者に考える負担を与えていると思います。
>でも次回からはその辺も勉強して回答者に理解を得られるように頑張っていきます。最後になりますが、「最初に「こんなことができたらいいな」と考える時点で、コードを作りやすいような形に要望を組み立てましょうってことです。」は、
>私にとって足らない部分を教えて頂いた事、感謝です。有難うございました。

【74239】Re:入力表示
発言  愛子 E-MAIL  - 13/5/2(木) 19:04 -

引用なし
パスワード
   佳さんへ
こんにちは、

佳さんの発言:正しく入力できるまで何度でも何度でも繰り返しメッセージボックスが出て欲しいと読めました。
いまの動きは、「天気を入力して下さい」とメッセージボックスがでたら
そこまででコードはいったん終わります。天気を入力をしたら、ユーザー
さんがもう一度マクロボタンを押さないといけません。

愛子:上段の発言を見て佳さんが言っていることがわかりました。その通りです。私が気付かなかっただけです。

佳さんの発言: だから、このさい、少しだけご自分でコードを作ってみませんか。というと、すごく大変なことのように感じられると思いますが。
ごく初歩的なところを少しだけ。初歩的なところなら簡単ですから。

「それで少ーしだけ書けるようになったらば、この書けるようになったことを
使って何ができるだろうか、と考えてみるんです。
できること から考えをスタートしますから、たいていうまくいきます。

愛子:素晴らしい事を教わりました。地道にやって行きます。有難うございました。

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