Excel VBA質問箱 IV

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

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


7853 / 13645 ツリー ←次へ | 前へ→

【36417】誰か教えてくださいUserformの開き方 初心者A 06/3/30(木) 17:48 質問[未読]
【36420】Re:誰か教えてくださいUserformの開き方 Kein 06/3/30(木) 18:17 回答[未読]
【36452】Re:誰か教えてくださいUserformの開き方 初心者A 06/3/31(金) 14:55 質問[未読]
【36455】Re:誰か教えてくださいUserformの開き方 Jaka 06/3/31(金) 15:44 発言[未読]
【36465】Re:誰か教えてくださいUserformの開き方 初心者A 06/3/31(金) 18:23 質問[未読]
【36466】Re:誰か教えてくださいUserformの開き方 K 06/3/31(金) 18:59 発言[未読]
【36467】Re:誰か教えてくださいUserformの開き方 初心者A 06/3/31(金) 19:24 お礼[未読]

【36417】誰か教えてくださいUserformの開き方
質問  初心者A  - 06/3/30(木) 17:48 -

引用なし
パスワード
   Sheet1のA1〜A3の各セルに特定の値を入力するとUserformが開く
コードを教えて下さい。

Sub UFO()
If cells(A1) = 10 or 20 then
  UserForm1.show
End if
If cells(A2) = 10 or 20 then
  UserForm1.show
End if
If cells(A3) = 10 or 20 then
  UserForm1.show
End if
End Sub
上記のコードだとA2,A3の数値がない場合Userformを閉じるのに
閉じるボタンを3回クリックしなければなりません
誰か教えて下さい。

【36420】Re:誰か教えてくださいUserformの開き方
回答  Kein  - 06/3/30(木) 18:17 -

引用なし
パスワード
   Sub UFO2()
 Dim FR As Range, FR2 As Range
 
 If UserForms.Count > 0 Then Exit Sub
 With Sheets("Sheet1").Range("A1:A3")
   Set FR = .Find(10, , xlValues, xlWhole)
   Set FR2 = .Find(20, , xlValues, xlWhole)
 End With
 If FR Is Nothing And FR2 Is Nothing Then Exit Sub
 UserForm1.Show 0
 Set FR = Nothing: Set FR2 = Nothing
End Sub

で、どうかな ?

   

【36452】Re:誰か教えてくださいUserformの開き方
質問  初心者A  - 06/3/31(金) 14:55 -

引用なし
パスワード
   Kein さんへ

早速試してみましたが 一つ問題が発生しました。

Sheet1.Range("A1")を選択したまでは良かったのですが、
間違ってRange("B5")を選択してもUserForm1が開いて
しまいます。
質問が言葉足らずでした。

Sheet1のA1.A2.A3のいずれかのセルに特定の値を入力すると
Userformが開くコードを再度教えて下さい。
出来れば下記破線の意味も教えて下さい。

Set FR = .Find(10, , xlValues, xlWhole)
     ──────────────
よろしくお願いします。

【36455】Re:誰か教えてくださいUserformの開き方
発言  Jaka  - 06/3/31(金) 15:44 -

引用なし
パスワード
   よく解ってないけど。

Sub UFO()
If Range("A1").Value = 10 Or Range("A1").Value = 20 Or _
  Range("A2").Value = 10 Or Range("A2").Value = 20 Or _
  Range("A3").Value = 10 Or Range("A3").Value = 20 Then
  UserForm1.Show
End If
End Sub

>出来れば下記破線の意味も教えて下さい。
A1:A3のセル範囲を10と20の値を検索して、
どちらかが合ったらフォームを表示する。
編集→検索をコード化。

>Sheet1.Range("A1")を選択したまでは良かったのですが、
>間違ってRange("B5")を選択してもUserForm1が開いて
>しまいます。
意味がわかりません。
セルの選択は、フォームの表示にかかわってません。
セルの内容を消してください。

【36465】Re:誰か教えてくださいUserformの開き方
質問  初心者A  - 06/3/31(金) 18:23 -

引用なし
パスワード
   早速のご回答ありがとうございまいした。
教えて頂いたコードを実行しましたが、

Range("A1")に10が入っている状態で、Range("C2")を選択しても
UserForm1が表示されてしまいます。この場合はUserForm1を非表示
に出来ないでしょうか。

次にRange("A2") or Range("A3")に10 or 20を入力しない限り、
UserForm1を表示させないことは出来ませんか?

Range("A1") =10を入力   ・・・UserForm1を表示
Range("C2") =10を入力   ・・・UserForm1を非表示
Range("A3") =20を入力   ・・・UserForm1を表示     

説明不足ですみません。

【36466】Re:誰か教えてくださいUserformの開き方
発言  K  - 06/3/31(金) 18:59 -

引用なし
パスワード
   ▼初心者A さん:

KeinさんそしてJakaさんのコードで上手く動きますが。
何かが災いしているのかな?

もし貴方のコードを使うなら…
Sub UFO1()
If Cells(1, 1).Value = 10 Or Cells(1, 1).Value = 20 Then
  UserForm1.Show
End If
If Cells(2, 1) = 10 Or Cells(2, 1) = 20 Then
  UserForm1.Show
End If
If Cells(3, 1) = 10 Or Cells(3, 1) = 20 Then
  UserForm1.Show
End If
End Sub

【36467】Re:誰か教えてくださいUserformの開き方
お礼  初心者A  - 06/3/31(金) 19:24 -

引用なし
パスワード
   K さんへ

早速のご返答有難うございます。
まだ、確かめてはいませんが 

まずはお礼まで。

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