|
▼ハチ さん:
>一覧表へデータ処理は完成した と解釈して良いですね?
はい、以下のようなプロシージャーをユーザーボックス内に作り
データ管理して表示されるようにしました。
'表示レコード変更用プロシージャ
Private Sub ComboBox1_Change()
Dim No As Variant
Dim rcd As Range
Dim pName As String
No = ComboBox1.Value
Set rcd = Range("番号").Find(What:=No, _
LookAt:=xlWhole)
A.Value = rcd.Offset(0, 1).Value
B.Value = rcd.Offset(0, 2).Value
C.Value = rcd.Offset(0, 3).Value
D.Value = rcd.Offset(0, 4).Value
E.Value = rcd.Offset(0, 5).Value
F.Value = rcd.Offset(0, 6).Value
G.Value = rcd.Offset(0, 7).Value
H.Value = rcd.Offset(0, 8).Value
I.Value = rcd.Offset(0, 9).Value
J.Value = rcd.Offset(0, 10).Value
K.Value = rcd.Offset(0, 11).Value
L.Value = rcd.Offset(0, 12).Value
M.Value = rcd.Offset(0, 13).Value
N.Value = rcd.Offset(0, 14).Value
O.Value = rcd.Offset(0, 15).Value
P.Value = rcd.Offset(0, 16).Value
Q.Value = rcd.Offset(0, 17).Value
R.Value = rcd.Offset(0, 18).Value
S.Value = rcd.Offset(0, 19).Value
T.Value = rcd.Offset(0, 20).Value
U.Value = rcd.Offset(0, 22).Value
If rcd.Offset(0, 21).Value = "良" Then
OptionButton1.Value = True
ElseIf rcd.Offset(0, 21).Value = "不可" Then
OptionButton2.Value = True
Else
OptionButton1.Value = False
OptionButton2.Value = False
End If
End Sub
'「更新」ボタンのプロシージャ
Private Sub CommandButton2_Click()
Dim No As Variant
Dim rcd As Range
No = ComboBox1.Value
Set rcd = Range("番号").Find(What:=No, _
LookAt:=xlWhole)
If No = "新規" Then
rcd.EntireRow.Insert
Set rcd = rcd.Offset(-1)
rcd.Value = rcd.Offset(-1).Value + 1
End If
rcd.Offset(0, 1).Value = A.Value
rcd.Offset(0, 2).Value = B.Value
rcd.Offset(0, 3).Value = C.Value
rcd.Offset(0, 4).Value = D.Value
rcd.Offset(0, 5).Value = E.Value
rcd.Offset(0, 6).Value = F.Value
rcd.Offset(0, 7).Value = G.Value
rcd.Offset(0, 8).Value = H.Value
rcd.Offset(0, 9).Value = I.Value
rcd.Offset(0, 10).Value = J.Value
rcd.Offset(0, 11).Value = K.Value
rcd.Offset(0, 12).Value = L.Value
rcd.Offset(0, 13).Value = M.Value
rcd.Offset(0, 14).Value = N.Value
rcd.Offset(0, 15).Value = O.Value
rcd.Offset(0, 16).Value = P.Value
rcd.Offset(0, 17).Value = Q.Value
rcd.Offset(0, 18).Value = R.Value
rcd.Offset(0, 19).Value = S.Value
rcd.Offset(0, 20).Value = T.Value
rcd.Offset(0, 22).Value = U.Value
If OptionButton1.Value Then
rcd.Offset(0, 21).Value = "良"
ElseIf OptionButton2.Value Then
rcd.Offset(0, 21).Value = "不可"
End If
If No = "新規" Then
ComboBox1.Value = rcd.Value
ComboBox1.RowSource = "番号"
End If
End Sub
'「削除」ボタンのプロシージャ
Private Sub CommandButton1_Click()
Dim cCount As Integer
cCount = Range("番号").Cells.Count - 1
If cCount = 1 Then
MsgBox "このレコードは削除できません"
Exit Sub
End If
If MsgBox("このレコードを削除していいですか?", _
vbYesNo) = vbYes Then
ComboBox1.RowSource = ""
Range("番号").Find(What:=ComboBox1.Value, _
LookAt:=xlWhole).EntireRow.Delete
If ComboBox1.Value = cCount Then
ComboBox1.Value = ComboBox1.Value - 1
Else
ComboBox1.Value = ComboBox1.Value + 1
End If
ComboBox1.RowSource = "番号"
End If
End Sub
'「閉じる」ボタンのプロシージャ
Private Sub CommandButton3_Click()
Me.Hide
End Sub
Private Sub UserForm1_Initialize()
ComboBox1.Value = 1
End Sub
【データシート】
A B C D
1 リンゴ みかん スイカ イチゴ
新規
↑
ココの範囲を(番号)リンゴの所は(リスト)で定義をかけています。
『作りたいマクロ』
上記のデータシート(以下、AAシートとします)内のデータを
定型のシート(以下、BBシート)にリンクして、出来上がった定型シートを
名前を付けて保存したいと思っています(以下、CCシート)。
1番のそれぞれのセルがBBシートにリンクをさせて1番CCシート作成。
また、AAシートで2番を作った際にも2番CCシートを作成させて
データが増えるのに従ってCCシートが追加されるような形です。
なので、AAシートの1番を変更すると1番CCシートの値も変わるような
そのようなマクロを作りたいです。
セルの参照でネットを探してみたんですがみつかりません。
シート内の参照や、シート間の参照は見つかりましたが
私のように、AAシートでオフセット機能を使い
番号でデータ管理をしているのがない為です。
Valueで参照しようと思ったのですが、既にValueを使っていても
Valueでコピー機能は使えるんでしょうか?
もし、使えるようならAAシートでオフセット追加しているようなデータは
どのように指定すれば宜しいのでしょうか?
コピー先のBBシートに参照するセルは固定で決まっています。
=で貼り付けてみたんですが、AAシートでリストを新規作成すると
エラーが出てきます…。
面倒くさい事を色々と質問して申し訳ございません。
|
|