Excel VBA質問箱 IV

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

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


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

【16394】ichinoseサンありがとです VBA初心クマ娘 04/7/26(月) 23:11 お礼[未読]
【16396】Re:ichinoseサンありがとです IROC 04/7/26(月) 23:18 回答[未読]
【16399】Re:ichinoseサン、もうひとつ・・・ VBA初心クマ娘 04/7/26(月) 23:26 質問[未読]
【16401】Re:ichinoseサン、もうひとつ・・・ Asaki 04/7/26(月) 23:44 発言[未読]
【16402】Asaki さん、よろしく VBA初心クマ娘 04/7/27(火) 0:04 質問[未読]
【16410】Re:Asaki さん、よろしく ichinose 04/7/27(火) 7:33 発言[未読]
【16411】Re:Asaki さん、よろしく Asaki 04/7/27(火) 9:03 発言[未読]
【16412】Re:Asaki さん、よろしく ichinose 04/7/27(火) 10:22 発言[未読]
【16427】Re:Asaki さん、よろしく VBA初心クマ娘 04/7/27(火) 17:12 お礼[未読]
【16431】Re:Asaki さん、よろしく Asaki 04/7/27(火) 18:21 発言[未読]
【16443】Re:Asaki さん、よろしく ichinose 04/7/27(火) 23:56 発言[未読]
【16468】Re:Asaki さん、よろしく Asaki 04/7/28(水) 13:44 発言[未読]

【16394】ichinoseサンありがとです
お礼  VBA初心クマ娘  - 04/7/26(月) 23:11 -

引用なし
パスワード
   組み込みダイアナロク゛ボックスですね。
勉強になりました。
表示されました!

【16396】Re:ichinoseサンありがとです
回答  IROC  - 04/7/26(月) 23:18 -

引用なし
パスワード
   お礼だけの為にトピックを増やすのは良くないので、
同じ質問のトピックで返信するようお願い致します。

【16399】Re:ichinoseサン、もうひとつ・・・
質問  VBA初心クマ娘  - 04/7/26(月) 23:26 -

引用なし
パスワード
   検索の組み込みダイアナロク゛ボックスが、表示されましたが、
その後の分岐の記述が、うまくかけません。
if myRtn = Falseを使うと思うのですか・・?

【16401】Re:ichinoseサン、もうひとつ・・・
発言  Asaki  - 04/7/26(月) 23:44 -

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

せめてリンク張ってください。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=16357;id=excel

>その後の分岐の記述が、うまくかけません。
>if myRtn = Falseを使うと思うのですか・・?
上手くいかないというのはどういう状況でしょうか?

書き方が解らない?
なんか書いてみたけどエラーが出た?
エラーは出ないけど、動きが違う?
どれでしょうか?

【16402】Asaki さん、よろしく
質問  VBA初心クマ娘  - 04/7/27(火) 0:04 -

引用なし
パスワード
   検索のダイアログボックスか゜、表示されたまま次に進みません。
まったく動かないのです。セルが移動しないのです。
エクセル2000だから、動かないのでしょうか?
全くの初心者ですので、よろしくお願いします。

【16410】Re:Asaki さん、よろしく
発言  ichinose  - 04/7/27(火) 7:33 -

引用なし
パスワード
   ▼VBA初心クマ娘 さん:
おはようございます。

>検索のダイアログボックスか゜、表示されたまま次に進みません。
>まったく動かないのです。セルが移動しないのです。
>エクセル2000だから、動かないのでしょうか?
>全くの初心者ですので、よろしくお願いします。
本当ですね・・・、検索セル範囲を選択してから実行してみて下さい。

'=================================================================
Sub main()
  Dim ans
  Cells.Select
  ans = Application.Dialogs(xlDialogFormulaFind).Show
' ans true---閉じるボタンがクリックされた false-Xボタンがクリック
  If ans = True Then
   MsgBox ActiveCell.Address
   End If
End Sub

RangeのFindメソッドのお手軽版みたいなものなので、
ある意味 忠実だったりして・・・。

【16411】Re:Asaki さん、よろしく
発言  Asaki  - 04/7/27(火) 9:03 -

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

実は、ichinose さんのコードをお借りして、作ってみて一旦Upしたんですが、
どうも、動作的に納得できないので削除しました。

検索を実行して、検索値が見つからずにalertが表示されても、
「閉じる」を押すと必ず結果がTrueで戻ってくるのが、どうも。。。

これはDialog的にこんなもんなんでしょうか。。。?

【16412】Re:Asaki さん、よろしく
発言  ichinose  - 04/7/27(火) 10:22 -

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

>
>実は、ichinose さんのコードをお借りして、作ってみて一旦Upしたんですが、
>どうも、動作的に納得できないので削除しました。
>
>検索を実行して、検索値が見つからずにalertが表示されても、
>「閉じる」を押すと必ず結果がTrueで戻ってくるのが、どうも。。。
>
>これはDialog的にこんなもんなんでしょうか。。。?

そうですねえ、「Application.Dialogs(xlDialogFormulaFind).Show」で
ひとつのJobとして、閉じてしまってますからねえ・・・。
VBAから利用する場合は、仕様が限られてしまいますよね!!
最初は、VBAからの利用までは考えてなかったのでしょうか?

ということがわかっただけでもこのご質問の功績は大というこで・・。

そう言えば昔、

「"卵、ちょうだい"と言われて、ゆで卵を返すようなプログラムは作るな」

なんて先輩に言われた事を思い出しました。

もっとも xlDialogFormulaFindの場合は、深い理由があったのかもしれませんが。

VBA初心クマ娘さん。

やりたいことの内容によっては、ユーザーフォームとRangeオブジェクトのFindメソッドを利用して、自作しなければならないかもしれませんよ!!

【16427】Re:Asaki さん、よろしく
お礼  VBA初心クマ娘  - 04/7/27(火) 17:12 -

引用なし
パスワード
   ichinose さん、Asaki さん、懇切丁寧にしていただいて感謝ですよ。
なんとか、処理を分岐できました。
そもそも、これを作ろうと思ったのは
顧客管理台帳をエクセルのメニューの操作も、わからない人に
マクロボタンを押すだけで作業してもらうために作っています。
ほんとは、ユーザーフォームを作ればいいのですが
まだ、VBAは初心者で、わからないし、時間も、あまり取れないのです。
あとは、並べ替えが、できれば、ほぼ完成です。
xlDialogSortを記述していますが、・・・。
ほんと、難しいですね。
8年前位ににロータスのマクロは、制覇したのですが、
VBAは、全く考え方が違い、戸惑っています。
いろいろ、ありがとうございました。

【16431】Re:Asaki さん、よろしく
発言  Asaki  - 04/7/27(火) 18:21 -

引用なし
パスワード
   ichinose さん、こんにちは。
レスありがとうございます。

>そうですねえ、「Application.Dialogs(xlDialogFormulaFind).Show」で
>ひとつのJobとして、閉じてしまってますからねえ・・・。
やっぱりそうなんですね。
ひょっとして、APIとかで取れたりするのかなぁ?とか考えたりしますが、追求する気はありません。

>「"卵、ちょうだい"と言われて、ゆで卵を返すようなプログラムは作るな」
微妙ですね。
求めるものの条件が足りてない気がしますが。
シンプルな処理が良い、ということでしょうか。

>やりたいことの内容によっては、ユーザーフォームとRangeオブジェクトのFindメソッドを利用して、自作しなければならないかもしれませんよ!!
自作となると、フィルタを使っても良いかもしれませんね。

【16443】Re:Asaki さん、よろしく
発言  ichinose  - 04/7/27(火) 23:56 -

引用なし
パスワード
   ▼Asaki さん、こんばんは。


>>そうですねえ、「Application.Dialogs(xlDialogFormulaFind).Show」で
>>ひとつのJobとして、閉じてしまってますからねえ・・・。
>
>>「"卵、ちょうだい"と言われて、ゆで卵を返すようなプログラムは作るな」
>微妙ですね。
>求めるものの条件が足りてない気がしますが。

あー、そうですね、微妙な投稿でしたね!!

私は、xlDialogFormulaFindは、現行、検索条件ダイアログ表示から検索実行まで
全てやっくれますよね。
このオブジォクトは、フォームから指定された条件データだけ返してくれればいいのに
と思っていたものですから・・・。
(まあ、そうはいかない事情があったんでしょうけど)
現行の動作を見て、

xlDialogFormulaFindは、セルの検索処理を全て行っているから、本当なら
出力データなんか要らないんだけど、取りあえず、ShowメソッドがFunctionで
定義されているから、「閉じる=True、Xボタン=False」でも返しておこう。

なんて事が頭に思い浮かんだものですから、前回のような表現になりました。

【16468】Re:Asaki さん、よろしく
発言  Asaki  - 04/7/28(水) 13:44 -

引用なし
パスワード
   ichinose さん、こんにちは。
たびたびありがとうございます。

>>>そうですねえ、「Application.Dialogs(xlDialogFormulaFind).Show」で
>>>ひとつのJobとして、閉じてしまってますからねえ・・・。
Showが実行されて「閉じる」を押されたから、メソッドが成功
の意味で、Trueが戻ってくるのかと考えていたので

>私は、xlDialogFormulaFindは、現行、検索条件ダイアログ表示から検索実行まで
>全てやっくれますよね。
>このオブジォクトは、フォームから指定された条件データだけ返してくれればいいのに
>と思っていたものですから・・・。
という見方は、思いつきもしませんでした。
↑こんな動きをするなら、かなり使えそうですよね。

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