動的に生成されたレポートのリストを取得する XLS があります。
B | C | D | E | F | G | H | I | J
1 1 | Bob |Jones |bjones| rep 1|Sales Report | Desc.| X | fnGenerateSalesReport
2 1 | Bob |Jones |bjones| rep 2|Revenue Rep. | Desc.| _ | fnGenerateRevenueReport
3 1 | Bob |Jones |bjones| rep 3|Customer List| Desc.| _ | fnGenerateCustReport
4 1 | Bob |Jones |bjones| rep 4|Stock Report | Desc.| _ | fnGenerateStockReport
ユーザーは、生成したいレポート (列 I) の横にある X をマークし、[生成] ボタンを押します。ユーザーの選択に基づいて関連する機能を実行するにはどうすればよいですか。関連する関数の名前 (レポートごとに 1 つの関数) は、レポートのリストの特定の列 (Col J) に表示されます (以下を参照)。
動的な値を保持してdebug.print
関数を呼び出したい行でc.Offset(0, 1).Value
Dim ws As Worksheet, rng As Range, stRows As Long
Dim c As Range
Set ws = Sheets("AVAILABLE REPORTS")
Set rng = ws.Range("B12:B12")
Set rng = ws.Range(rng, rng.End(xlDown))
stRows = rng.Rows.Count
Set rng = ws.Range("I12:I12")
Set rng = ws.Range("I12:I" & 11 + stRows)
For Each c In rng.Cells
If c.Value = "X" Or c.Value = "x" Then
Debug.Print "> [" & c.Value & " (" & c.Offset(0, 1).Value & ")]"
End If
Next