ここから本文です

解決済みのQ&A

VBAのユーザーフォームについて。

capslockshiftctrl954さん

VBAのユーザーフォームについて。

現在、顧客名簿をエクセルのVBAで管理をしています。
その際、エクセルに打ち込んである行をクリックすると、ユーザーフォームが
出現し、行に入力されている全てを顧客データとして、
一覧で表示させるVBAを作成したいのですが、
どのようなプロシージャを作成すればいいのかわかりません。

VBAの本を購入し、コードも勉強していますが、
現段階では本を見ながら、独自のVBAを作成する段階まで至っていません。

教えていただければ助かります。


セルには顧客名、住所、電話番号、購入履歴などを入力しています。

  • 質問日時:
    2011/3/2 09:55:09
  • 解決日時:
    2011/3/9 12:16:12
  • 閲覧数:
    392
    回答数:
    3

ベストアンサーに選ばれた回答

ruta_aj0104さん

サンプルを示しておきますので、コードの記述場所や意味は調べてみてください。

シート名:Sheet1
フォーム名:UserForm1
ラベル名:Label1~4

【Sheet1のイベントプロシージャーに記述】
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next 'エラー無効
'A1:D11にアクティブセルが無い場合は終了
If Intersect(Target, Range("A1:D11")) Is Nothing Then Exit Sub

myRow = Target.Row 'アクティブセルの行数を取得
Unload UserForm1 'フォームを閉じる
UserForm1.Show 0 'フォームを開く(vbModelessモード)
End Sub

【標準モジュールに記述】
'フォームに渡す変数
Public myRow As Long

【UserForm1のプロシージャーに記述】
Private Sub UserForm_Initialize()
With Sheets("Sheet1")
Label1.Caption = .Cells(myRow, 1).Value
Label2.Caption = .Cells(myRow, 2).Value
Label3.Caption = .Cells(myRow, 3).Value
Label4.Caption = .Cells(myRow, 4).Value
End With
End Sub

とりあえずは、自分なりにコードを作成してみて、うまくいかない部分のアドバイスをもらった方が良いと思います。
1問1答的な感じで質問すると、的確な回答が得られやすいですよ。
がんばってください。

投稿画像

質問した人からのお礼

  • 詳しくご丁寧にありがとうございました。
    感謝致します。
  • コメント日時:2011/3/9 12:16:12

グレード

ベストアンサー以外の回答

(2件中1〜2件)

並べ替え:回答日時の
新しい順
古い順

 

siogetusiさん

項目が少ない場合は、組み込みのフォームを使う方法もあります。

顧客名 住所 電話番号 購入履歴 といったラベルをシートに作成し、フォームを表示させると、下図のように表示されます。
項目間をTabで移動し、新規でEnterを押すと1行データが書き込まれます。簡単な検索もできます。

フォームの表示の仕方

2003までは、データ → フォーム

2007以降
クイックアクセスツールバーのカスタマイズ → その他のコマンド → すべてのコマンド → フォーム
をクイックアクセスツールバーに追加します。

投稿画像

ta_bo_722さん

この説明で丸投げはどうかと思いますよ・・・。
とりあえず自分で作ってみてわからないところを部分的に聞きましょう。

今、誰かにコードを載せてもらっても自分で改良できないと意味がありません。
もう少し勉強を進めるか、手探りでいいのですこしずつ自分のちからで
作ってみてください。

Q&Aをキーワードで検索:

総合Q&Aランキング

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。

知恵コレに追加する

閉じる

知恵コレクションをするID/ニックネームを選択し、「追加する」ボタンを押してください。
※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する