[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『横長の表』(しし丸)
一行一データで、横にかなり長い表があります。
表の左端の列は基本データ(A〜C)で、真ん中から右は変更や追加をしていくデータ(D〜Z)です。
例
A B C D E F G…Z
1 個人番号 個人名 性別 利用日@ 利用額@ 利用日A
2 001 あああ 男 4月1日 1万円 6月1日
3 002 いいい 女 4月5日 5千円 6月30日
4
:
かなり入力に手間取るので入力しやすくするには、
CとDの間で、ウインドウ枠の固定をし、
ツール→オプション→入力方向右で、
ENTERキーを押した時の動きをかえる方法がありますが、
もっと簡単にユーザーフォームを使い、一画面で入力したいと思っています。
そこで入力用のダイアログを作成し、ユーザーフォームに
Private Sub addbutton_Click()
'顧客情報を追加する
'データをセルに入力する
Range("顧客一覧").Cells(InsertRow, 1) = 個人番号(以下、オブジェクト名)
Range("顧客一覧").Cells(InsertRow, 2) = 個人名
Range("顧客一覧").Cells(InsertRow, 3) = 性別
Range("顧客一覧").Cells(InsertRow, 4) = 利用日@
Range("顧客一覧").Cells(InsertRow, 5) = 利用額@
Range("顧客一覧").Cells(InsertRow, 6) = 利用日A
'[顧客の追加]ダイアログを閉じる
Unload AddCustomerDlg
End Sub
Private Sub UserForm_Click()
End Sub
こんな感じて、本を読みながら、見よう見真似で分からずにつくってみました。
元々 表の大きさが限定されており、シートの保護がかかっているもの解除、最下行を挿入して、その部分に入力、その後シートの保護ーーという、一連の流れのもので、
こんな感じにするのかなと思って改造しましたが、
全然ダメでした…。
今考えているのは、選択しているセル(ActiveCell)の行(Row)で、フォームを呼び出し、入力ボタンを押すと、その行に入力データが転記されるものです。
本当に、何も分かっていませんが、なんとかVBAを使って使いやすいものを作りたい
と思っています。
どの部分がご質問なのでしょうか? (やっちん)
それでどの部分がわからないのでしょうか?全部ですか? 機能で分けて考えると 1.ユーザーフォームの表示。(何をすると表示する?) 2.シートからユーザーフォームへのデータの設定。 3.ユーザーフォームからシートへのデータの設定。 どれがわかりませんか? (やっちん)
例でいうと、
基本データ(A〜C)のみがあらかじめ入力されており、
その後、横に追加していく場合(D〜Z)、1行目の方(あああ)のデータを入力するために、例えばA2セルを選択していた場合(2行目)、フォームを表示すると、(あああ)のデータが入力できるようにしたいのですが…
サンプルを載せます。ユーザーフォームのコードです。 Private Sub UserForm_Activate() TextBox1.Text = Cells(ActiveCell.Row, 1).Value TextBox2.Text = Cells(ActiveCell.Row, 2).Value TextBox3.Text = Cells(ActiveCell.Row, 3).Value End Sub
Private Sub CommandButton1_Click() Cells(ActiveCell.Row, 1).Value = TextBox1.Text Cells(ActiveCell.Row, 2).Value = TextBox2.Text Cells(ActiveCell.Row, 3).Value = TextBox3.Text Me.Hide End Sub
Private Sub CommandButton2_Click() Me.Hide End Sub
ユーザーフォームにテキストボックスが3つあって それぞれA列からC列までの内容をそのテキストボックスに表示します。 ボタンは2つありCommandButton1を押すと テキストボックスの内容をシートに設定してユーザーフォームを閉じます。 CommandButton2はキャンセルボタンで何もせずにユーザーフォームを閉じます。
これを参考に改造してみてください。 わからないことがあれば、また質問してください。 (やっちん)
ついでの質問をします。
フォームよって転記されたデータが、ちゃんと入力されているか確認するために
入力した内容をフォームで確認することは可能でしょうか??(2.の質問になるのかな?)
要するに、今回教えて頂いたことが
フォーム→シートへの転記 でしたが、
フォーム→シートに入力されているデータの表示 ということです。
すいません、連続の質問になりますが宜しくお願いします。
(しし丸)
ユーザーフォームに入力してシートへ転記後 もう一度ユーザーフォームを表示するとテキストボックスに表示されませんか? 更新可能な状態で表示するのは気になりますけどね。
更新するときに確認メッセージを出すようにするとか入力できないようにするとか 対処方法は色々あるでしょうね。 (やっちん)
更新時の確認メッセージとか、また色々勉強します。
やってみて分からなければ、また助けをお願いするかもしれません。
ありがとうございました!!!
(しし丸)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.