Excel VBA質問箱 IV

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

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


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

【61366】ユーザーフォームを使って him_512 09/5/4(月) 20:45 質問[未読]
【61367】Re:ユーザーフォームを使って かみちゃん 09/5/4(月) 20:52 発言[未読]
【61370】Re:ユーザーフォームを使って him_512 09/5/4(月) 21:33 発言[未読]
【61372】Re:ユーザーフォームを使って かみちゃん 09/5/4(月) 21:35 発言[未読]
【61373】Re:ユーザーフォームを使って him_512 09/5/4(月) 21:48 発言[未読]
【61374】Re:ユーザーフォームを使って かみちゃん 09/5/4(月) 22:27 発言[未読]
【61376】Re:ユーザーフォームを使って him_512 09/5/4(月) 23:17 発言[未読]
【61377】Re:ユーザーフォームを使って かみちゃん 09/5/4(月) 23:28 発言[未読]
【61381】Re:ユーザーフォームを使って him_512 09/5/5(火) 13:22 発言[未読]
【61382】Re:ユーザーフォームを使って かみちゃん 09/5/5(火) 13:35 発言[未読]
【61390】Re:ユーザーフォームを使って him_512 09/5/5(火) 22:12 発言[未読]
【61392】Re:ユーザーフォームを使って かみちゃん 09/5/5(火) 22:17 発言[未読]
【61393】Re:ユーザーフォームを使って him_512 09/5/5(火) 22:20 発言[未読]
【61394】Re:ユーザーフォームを使って him_512 09/5/5(火) 22:23 発言[未読]
【61395】Re:ユーザーフォームを使って かみちゃん 09/5/5(火) 22:27 発言[未読]
【61396】Re:ユーザーフォームを使って him_512 09/5/5(火) 22:31 お礼[未読]
【61368】Re:ユーザーフォームを使って ゆみこん 09/5/4(月) 21:11 発言[未読]
【61369】Re:ユーザーフォームを使って him_512 09/5/4(月) 21:30 質問[未読]
【61375】Re:ユーザーフォームを使って ゆみこん 09/5/4(月) 23:16 発言[未読]
【61383】Re:ユーザーフォームを使って him_512 09/5/5(火) 16:07 発言[未読]
【61384】Re:ユーザーフォームを使って neptune 09/5/5(火) 17:16 発言[未読]
【61385】Re:ユーザーフォームを使って ゆみこん 09/5/5(火) 17:19 発言[未読]
【61386】Re:ユーザーフォームを使って him_512 09/5/5(火) 17:38 発言[未読]
【61387】Re:ユーザーフォームを使って かみちゃん 09/5/5(火) 17:42 発言[未読]
【61388】Re:ユーザーフォームを使って ゆみこん 09/5/5(火) 19:47 発言[未読]
【61391】Re:ユーザーフォームを使って him_512 09/5/5(火) 22:14 発言[未読]

【61366】ユーザーフォームを使って
質問  him_512 E-MAIL  - 09/5/4(月) 20:45 -

引用なし
パスワード
   EXCEL VBA でこんなことできますか?
EXCEL VBAでユーザーフォームを使って以下のようなVBAを作りたいのです。
1 sheet1 に ユーザーフォーム1を表示しTEXTBOX1に数字を入力します。

2 入力された数字で sheet2 に作ってある一覧表(B2から下に番号 C2から下に店名)
から その店名を大きく表示(入力した数字の店名に対応)

3 店名を印刷(枚数確認メッセージ)

このような流れのVBAを作成したいのです。
ご教授ください。
よろしくお願いします。

【61367】Re:ユーザーフォームを使って
発言  かみちゃん E-MAIL  - 09/5/4(月) 20:52 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>EXCEL VBAでユーザーフォームを使って以下のようなVBAを作りたいのです。
>1 sheet1 に ユーザーフォーム1を表示しTEXTBOX1に数字を入力します。
>↓
>2 入力された数字で sheet2 に作ってある一覧表(B2から下に番号 C2から下に店名)
>から その店名を大きく表示(入力した数字の店名に対応)

以下のような感じで、店名は、取得できると思います。

 Dim m As Variant
 Dim strData As String
 
 strData = TextBox1.Value
 With Sheets("Sheet2").Columns("B")
  m = Application.Match(strData, .Cells, 0)
  If IsNumeric(m) Then
   MsgBox .Cells(m, 2).Value
  Else
   MsgBox "店名は見つかりません " & strData
  End If
 End With

「店名を大きく表示」とは、どこにどの程度なのでしょうか?

>3 店名を印刷(枚数確認メッセージ)

「マクロの記録」で記録できますが、試されていますか?

【61368】Re:ユーザーフォームを使って
発言  ゆみこん  - 09/5/4(月) 21:11 -

引用なし
パスワード
   >その店名を大きく表示(入力した数字の店名に対応)
を除けば

対話型処理2(InputBox関数,InputBoxメソッド)
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_inputbox.html
でも対応出来そうですが。

大きくどこに表示したいのかですね。
⇒ユーザーフォームのラベルとかですかね?

【61369】Re:ユーザーフォームを使って
質問  him_512 E-MAIL  - 09/5/4(月) 21:30 -

引用なし
パスワード
   ご回答ありがとうございます。

ユーザーフォームを消して
次のユーザーフォームに
店名を表示したいのですが・・・

【61370】Re:ユーザーフォームを使って
発言  him_512 E-MAIL  - 09/5/4(月) 21:33 -

引用なし
パスワード
   ご回答ありがとうございます。
VBA初心者ですので
右も左もわからない状態です。

まだ試しができていません。
これから試してみますが
一番近い方法がありますか?

【61372】Re:ユーザーフォームを使って
発言  かみちゃん E-MAIL  - 09/5/4(月) 21:35 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>一番近い方法がありますか?

何が一番近いのかはよくわかりません。
まずは、試していただければと思います。

試し方がわからないというのであれば、話は別です。

【61373】Re:ユーザーフォームを使って
発言  him_512 E-MAIL  - 09/5/4(月) 21:48 -

引用なし
パスワード
   ご回答ありがとうございます。
印刷画面の前に
ご教授いただいたコードで
試してみたのですが
店先が拾えません?
どうしたらいいでしょうか?

【61374】Re:ユーザーフォームを使って
発言  かみちゃん E-MAIL  - 09/5/4(月) 22:27 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>ご教授いただいたコードで
>試してみたのですが
>店先が拾えません?

それは、
「店名は見つかりません 」というメッセージが表示されるということですか?
Sheet2のB列は、数字の文字列ではなく、数値ですか?
それであれば、
m = Application.Match(strData, .Cells, 0)
の部分を
m = Application.Match(Val(strData), .Cells, 0)
としてみるといかがでしょうか?

こちらは、Excel2002 SP3 で動作確認しています。

【61375】Re:ユーザーフォームを使って
発言  ゆみこん  - 09/5/4(月) 23:16 -

引用なし
パスワード
   >ユーザーフォームを消して
>次のユーザーフォームに
>店名を表示したいのですが・・・
ユーザーフォームに拘るのは、”文字を大きく表示したい”ためでしょうか?

例えば任意に入力できるウィンドウと、結果を表示できるメッセージが
出れば良いだけならユーザーフォームは必要ない気がしてます。

ユーザーフォームを例えるのなら、
 −−−−−−−−−−−−−−−−−
|番号(    )←入力して検索実行  |
|店舗(    )←検索した結果を表示 |
 −−−−−−−−−−−−−−−−−
とかにして1つのユーザーフォームに表示する方が楽だと思いますよ。

まぁ私見ですしユーザーフォーム自体はそれほどいじっていないので、
ユーザーフォーム案であれば、コメントを控えた方がいいかな。
⇒質問者さんが混乱しそうなので。

【61376】Re:ユーザーフォームを使って
発言  him_512 E-MAIL  - 09/5/4(月) 23:17 -

引用なし
パスワード
   ありがとうございます。
動作確認ができました。
感謝致します。

もう二つ教えていただけませんか?

1 検索結果を大きく表示したいです。

2 検索結果後、印刷メッセージ「何枚印刷しますか?」と
  表示し、枚数入力画面にしたいのです。

あつかましくて申し訳ありません。
VBA初心者ですので
どうぞご教授ください。
よろしくお願いいたします。

【61377】Re:ユーザーフォームを使って
発言  かみちゃん E-MAIL  - 09/5/4(月) 23:28 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>1 検索結果を大きく表示したいです。

どこにどの程度ですか?

>2 検索結果後、印刷メッセージ「何枚印刷しますか?」と
>  表示し、枚数入力画面にしたいのです。

InputBox をヘルプで調べるか、過去ログを検索してみてください。
たくさん見つかると思います。

【61381】Re:ユーザーフォームを使って
発言  him_512  - 09/5/5(火) 13:22 -

引用なし
パスワード
   こんにちは。
検索の動作は確認したのですが、
1桁で反応してしまいます。
4桁入力に対応するにはどのようにしたらいいでしょうか?

【61382】Re:ユーザーフォームを使って
発言  かみちゃん E-MAIL  - 09/5/5(火) 13:35 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>検索の動作は確認したのですが、
>1桁で反応してしまいます。
>4桁入力に対応するにはどのようにしたらいいでしょうか?

現在のコードを示していただけませんか?
UserForm上のTextBoxということかと思いますが、

Private Sub TextBox1_Change()

End Sub

という感じにしているのではないですか?
なぜ、そこがいいのでしょうか?

Exit イベントではいかがでしょうか?

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 MsgBox Me.TextBox1.Value
End Sub

いずれにしても、うまくいかないなら、全体のコードを示してみましょう。

【61383】Re:ユーザーフォームを使って
発言  him_512  - 09/5/5(火) 16:07 -

引用なし
パスワード
   ▼ゆみこん さん:
>>ユーザーフォームを消して
>>次のユーザーフォームに
>>店名を表示したいのですが・・・
>ユーザーフォームに拘るのは、”文字を大きく表示したい”ためでしょうか?
>
>例えば任意に入力できるウィンドウと、結果を表示できるメッセージが
>出れば良いだけならユーザーフォームは必要ない気がしてます。
>
>ユーザーフォームを例えるのなら、
> −−−−−−−−−−−−−−−−−
>|番号(    )←入力して検索実行  |
>|店舗(    )←検索した結果を表示 |
> −−−−−−−−−−−−−−−−−
>とかにして1つのユーザーフォームに表示する方が楽だと思いますよ。
>
>まぁ私見ですしユーザーフォーム自体はそれほどいじっていないので、
>ユーザーフォーム案であれば、コメントを控えた方がいいかな。
>⇒質問者さんが混乱しそうなので。


ゆみこんさん
こんにちは。
いま考えているフォームは自分だけが使うのではなく
パソコンに慣れていない人にも使えるように考えています。
ですので簡単に大きく表示し確認画面から店名を印刷できるようにしたいのです。
(とはいえ自分もVBA初心者なので困っています)

最初のユーザーフォームに数字を入力し、その結果を表示する方法もよかったら
教えていただけませんか?
よろしくお願い致します。

【61384】Re:ユーザーフォームを使って
発言  neptune  - 09/5/5(火) 17:16 -

引用なし
パスワード
   ▼him_512 さん:
横から失礼。
回答ではないですが、

>最初のユーザーフォームに数字を入力し、その結果を表示する方法もよかったら
>教えていただけませんか?
>よろしくお願い致します。
him_512 さんは何をどこまでやってますか?
それによって、回答、若しくは逆質問は変わってきます。

何もしてない、出来ない、なら、質問とはいえませんし、
>パソコンに慣れていない人にも使えるように考えています。
は無理です。
him_512 さん自身が、作成したプログラムのメンテナンスは出来ますか?

人に使ってもらうプログラムを書くのは自分で使うプログラムの10倍
は手間がかかるといわれています。当然それなりのスキルが必要になります。
私自身は↑は大げさではないと思っています。

【61385】Re:ユーザーフォームを使って
発言  ゆみこん  - 09/5/5(火) 17:19 -

引用なし
パスワード
   ▼him_512 さん:
>▼ゆみこん さん:
>ゆみこんさん
>こんにちは。
>いま考えているフォームは自分だけが使うのではなく
>パソコンに慣れていない人にも使えるように考えています。
>ですので簡単に大きく表示し確認画面から店名を印刷できるようにしたいのです。
>(とはいえ自分もVBA初心者なので困っています)
>
>最初のユーザーフォームに数字を入力し、その結果を表示する方法もよかったら
>教えていただけませんか?
>よろしくお願い致します。

私の理解できている範囲は、
・ユーザーフォームに検索結果を表示する。
・シートを印刷する。
と言う事でして、

『ユーザーフォームに表示したものを印刷する』

と言うのはわかりません。(どこかで見たような気もしなくはないですが)

店名を印刷したいというのであればシート(セル)に代入すればいいのでは?
とも考えられます。

しかし1店分だけを印刷すると言うのもわかりません。
何かシールとかに印刷するのでしょうか・・・?

【61386】Re:ユーザーフォームを使って
発言  him_512  - 09/5/5(火) 17:38 -

引用なし
パスワード
   >しかし1店分だけを印刷すると言うのもわかりません。
>何かシールとかに印刷するのでしょうか・・・?

ゆみこんさん。
ご回答ありがとうございます。

配送先の商品にB5の半分ぐらいの
大きさの紙に店名が印刷されるように
したいのです。
倉庫内の配送先(250店舗ぐらい)の
確認のためのものです。
店先をいままで手書きしていましたが
印刷したほうが時間も省略できると
思いVBAで作ってみようと思いました。

(私の説明が悪くて申し訳ありません)

【61387】Re:ユーザーフォームを使って
発言  かみちゃん E-MAIL  - 09/5/5(火) 17:42 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> 思いVBAで作ってみようと思いました。
>
>(私の説明が悪くて申し訳ありません)

一応 61381 の質問に対して、61382 で答えているのですが、それはどうなったのですか?
気になって仕方ありません。

こちらは、ゆみこさんの案ですから、私は、コメントを控えています。
ただ、同様のことは感じています。

【61388】Re:ユーザーフォームを使って
発言  ゆみこん  - 09/5/5(火) 19:47 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。

かみちゃんさん。

>こちらは、ゆみこさんの案ですから、私は、コメントを控えています。
>ただ、同様のことは感じています。
全然気にしないで下さい。
私も勉強になりますので、どしどし行きましょう。

でも結局検索した結果を、”どうすべき”なのかがちょっと不明ですね。
ユーザーフォームに検索結果を出すのも印刷とは離れる感じですし。

ならばINPUTBOXで検索値を与えて結果をメッセージで表示しながら、
続けて印刷するか否かを選択させ、印刷する場合はセルに代入して印刷実行。

かと思うんですが、”大きく表示”とは視力の弱い方に対応させるために
必要なのかどうか・・・?

【61390】Re:ユーザーフォームを使って
発言  him_512 E-MAIL  - 09/5/5(火) 22:12 -

引用なし
パスワード
   遅くなり申し訳ありません。
本日は仕事で急遽出かけることになり
返信が遅くなりました。
現時点のコードは

Private Sub TextBox1_Change()
Dim m As Variant
 Dim strData As String

 strData = TextBox1.Value
 With Sheets("Sheet2").Columns("B")
  m = Application.Match(Val(strData), .Cells, 0)
  If IsNumeric(m) Then
   MsgBox .Cells(m, 2).Value
  Else
   MsgBox "店名は見つかりません " & strData
  End If
 End With

です。

【61391】Re:ユーザーフォームを使って
発言  him_512 E-MAIL  - 09/5/5(火) 22:14 -

引用なし
パスワード
   本日は仕事で急遽出かけることになり
ただいま戻りました。
申し訳ありません。

【61392】Re:ユーザーフォームを使って
発言  かみちゃん E-MAIL  - 09/5/5(火) 22:17 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>現時点のコードは
>
>Private Sub TextBox1_Change()

Change にしている理由は何でしょうか?

Private Sub TextBox1_Exit()
ではいかがですか?

【61393】Re:ユーザーフォームを使って
発言  him_512 E-MAIL  - 09/5/5(火) 22:20 -

引用なし
パスワード
   かみちゃん さん
こんばんは。
遅くなり申し訳ありません。
試してみます。

【61394】Re:ユーザーフォームを使って
発言  him_512 E-MAIL  - 09/5/5(火) 22:23 -

引用なし
パスワード
   かみちゃんさん。
試してみましたが
コンパイルエラーがでてしまいます。

【61395】Re:ユーザーフォームを使って
発言  かみちゃん E-MAIL  - 09/5/5(火) 22:27 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>コンパイルエラーがでてしまいます。

説明が雑でしたでしょうか?

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
です。

以下のようなところも参考にしたほうがいいかもしれません。
http://home.att.ne.jp/zeta/gen/excel/c04p30.htm

【61396】Re:ユーザーフォームを使って
お礼  him_512 E-MAIL  - 09/5/5(火) 22:31 -

引用なし
パスワード
   かみちゃんさん
ありがとうございました。
動作確認致しました。

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