Excel VBA質問箱 IV

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

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


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

【28038】顧客リストをユーザーフォームで rina 05/8/27(土) 0:34 質問[未読]
【28040】Re:顧客リストをユーザーフォームで かみちゃん 05/8/27(土) 1:35 発言[未読]
【28046】Re:顧客リストをユーザーフォームで rina 05/8/27(土) 10:37 発言[未読]
【28047】Re:顧客リストをユーザーフォームで かみちゃん 05/8/27(土) 11:06 発言[未読]
【28145】Re:顧客リストをユーザーフォームで rina 05/8/29(月) 21:33 お礼[未読]
【28172】Re:顧客リストをユーザーフォームで こたつねこ 05/8/30(火) 10:15 発言[未読]

【28038】顧客リストをユーザーフォームで
質問  rina  - 05/8/27(土) 0:34 -

引用なし
パスワード
   初めて投稿させていただきます。

顧客情報の一覧をテキストボックスとコマンドボタンを使って、順次下に追加されていくように配列を使って作りました。このリストの名前や顧客NOをクリックするだけでユーザーフォームに一人ずつ別に表示させたいのですが、どのようにしたらいいのでしょうか?

NO 名前 住所 TEL
1  あ  い  22
2  う  え  23

たぶん、セルの情報をどのようにしていしたらいいのかがわからないのだと思います。初心者で申し訳ありません。どうぞよろしくお願いします。

【28040】Re:顧客リストをユーザーフォームで
発言  かみちゃん  - 05/8/27(土) 1:35 -

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

すみません、質問内容がいまひとつわからないので、教えてください。

>顧客情報の一覧をテキストボックスとコマンドボタンを使って、順次下に追加されていくように配列を使って作りました。

「順次下に追加」というのは、ワークシートに追加するということですか?

>このリストの名前や顧客NOをクリックするだけでユーザーフォームに一人ずつ別に表示させたい

リストの名前や顧客NOをクリックするというのは、ダブルクリックでもいいですか?
ユーザーフォームは、その都度開くのですか?
あらかじめ開いてある状態ですか?

【28046】Re:顧客リストをユーザーフォームで
発言  rina  - 05/8/27(土) 10:37 -

引用なし
パスワード
   ▼かみちゃん さん:
すみません。リストのプログラムは

Private Sub 登録_Click()
Dim varRag As Variant
Dim myArray As Integer

varRag = Array(txtNum, txtDay, txtName, txtAdr, txtTel1, txtTel2, txtBirth, txtCar, txtYear, txtD, txtShaken)

'初めて入力される場合は、最初の行を選択します。
  If Range("A13") = Empty Then
    Range("A13").Select
    txtNum = 1
    For myArray = 0 To 10
       With Selection
                 .Offset(, myArray) = varRag(myArray)
       End With
    Next myArray
  Else
 '2回目以降の入力であれば最終行の1行次の行を選択します。
    Range("A65536").End(xlUp).Offset(1).Select
    For myArray = 0 To 10
       With Selection
          txtNum = .Row - 12
                 .Offset(, myArray) = varRag(myArray)
       End With
    Next myArray
  End If
 'テキストボックスをすべて初期化します。
  txtNum = ""
  txtDay = ""
  txtName = ""
  txtAdr = ""
  txtTel1 = ""
  txtTel2 = ""
  txtBirth = ""
  txtCar = ""
  txtYear = ""
  txtD = ""
  txtShaken = ""
  

End Sub

としたのですが、これでできたものをクリックでもダブルクリックでもいいので
(最初からではなく)その都度データをユーザーフォームで表示させたいのです。

【28047】Re:顧客リストをユーザーフォームで
発言  かみちゃん  - 05/8/27(土) 11:06 -

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

>ダブルクリックでもいいので
>(最初からではなく)その都度データをユーザーフォームで表示させたい

まだ、よくわからないのですが、
ダブルクリックしたときのセル番号を取得するには、次のような感じでできると思いますので、ヒントになりますでしょうか?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 MsgBox "クリックされたセルは " & Target.Address(0, 0) & " です"
 Cancel = True
End Sub

ユーザーフォームを表示させたまま、ワークシートをクリックできるのでしょうか?たしか、できないので、したことがありません。

【28145】Re:顧客リストをユーザーフォームで
お礼  rina  - 05/8/29(月) 21:33 -

引用なし
パスワード
   返信遅くなり申し訳ありません。
ユーザーフォームはやはり開いたままシートをクリックできなかったので、
この方法をあきらめて、別の方法でリストをつくりました。
いろいろ調べていたのでお礼をいうのが遅くなりました。
どうもありがとうございます。

【28172】Re:顧客リストをユーザーフォームで
発言  こたつねこ  - 05/8/30(火) 10:15 -

引用なし
パスワード
   ▼rina さん:
こんにちは

>ユーザーフォームはやはり開いたままシートをクリックできなかったので、

ExcelのバージョンにもよりますがフォームをShow
するときにモードレスで呼び出せば出来ますよ。
参考までに・・・

フォーム名.show vbModeless

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