|
入力用シートのセルに金融機関コードを入力したときに、
当該金融機関の支店コードをリストの選択肢にしたいと考えています。
具体的には
近隣の金融機関コードと支店コード、支店名を入力した以下のような
金融機関シートが元々あるため、これを活用できればと考えています。
※支店コードは近隣のよく使用するもののみ入力されているので
とびとびに存在しています。
0001 0002 ・・・
1
2 アオヤマ
3 ギンザ
4 タバタ
・
・
55 ウエノ
・
・
900
入力シートの金融機関コードセル(F9)に 0001 が入力されたら
支店コード入力セルに(F11)に
3 ギンザ
55 ウエノ
というリストが入るようにしたいです。
どうやったらできるか考えたときに、
二次元配列に、支店コードと支店名を追加していって、
それをリストにセットすればよいのではと考え
以下のとおり途中まで記載しているのですが、
そもそも配列が苦手なので、ネットで調べても
応用ができず、行き詰っています。
いつもこちらの掲示板に頼ってしまっていますが、
所定の目的を達成できる方法を、ヒントでも構いませんので
ご教示いただけると幸いです。
Sub Macro1()
’試作の段階ですので、7列目の5〜最終行目にある支店名をリスト元とする処理のみ記載しています。
'
' Macro1 Macro
RETSU=5’金融機関コードの列
D_RETSU=7 ’指定の金融機関コードの存在する列
lastRow = Sheets("金融機関").Cells(Rows.Count, 7).End(xlUp).Row
Dim siten() As String
C = WorksheetFunction.CountA(Sheets("金融機関").Range(Sheets("金融機関").Cells(5, D_RETSU), Sheets("金融機関").Cells(lastRow, D_RETSU)))’当該金融機関コードの入力支店数
ReDim siten(C, 1)
For i = 5 To lastRow
If Sheets("金融機関").Cells(i, D_RETSU) <> "" Then 'データがあれば、配列に追加
・・・ここがよくわかりません。
End If
Next i
’マクロの記録により記録されたコード
sheets("入力シート").Range("L11").select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=金融機関!$K$5:$K$910" ←ここに配列をセット
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.IMEMode = xlIMEModeOff
.ShowInput = True
.ShowError = True
End With
End Sub
|
|