これは良いものです。まずはVBA TODAYを習い始めたので優しく。そのため、EXCEL 2007 にこの vba マクロがあり、3 つのドロップダウン メニューからのユーザーの選択に基づいて、テーブル内の行を自動的に非表示/表示します。参考までに、テーブルは、ユーザーの選択に基づいて不要な行を非表示にすることにより、可能なすべての選択肢を含むマスター テーブルから自動的に更新されます。
今、私はこれを別のレベルに引き上げたいと思っています。私が望むのは、Word 2007 からマクロを呼び出して、テーブルが Word 文書の目的の場所にコピーされるようにすることです。これを実現するには、ドロップダウン メニューが Word 文書にある必要があり、EXCEL マクロは Word 文書から選択された値を「読み取り」、テーブルを作成する必要があります。つまり、ユーザーは EXCEL 部分を見ることはなく、ドロップダウン メニューからの選択に基づいて自分の Word 文書で表を取得します。
テーブルを構築するExcelマクロを挿入しました。最終結果は、IF ステートメントを駆動する変数である C1、C2、および C3 が、WORD ドロップダウン メニューからの変数になるようになります。
Sub Sequence()
Application.ScreenUpdating = False
ActiveSheet.Cells.EntireRow.Hidden = False
If Range("C2").Value = 2 Then
Rows("48:67").Hidden = True
Else
Rows("48:67").Hidden = False
End If
If Range("C3").Value = 2 Then
Rows("6:7").Hidden = True
Else
Rows("6:7").Hidden = False
End If
If Range("C1").Value = 1 Then
Rows("9:12").Hidden = True
Rows("14:17").Hidden = True
Rows("19:22").Hidden = True
Rows("24:27").Hidden = True
Rows("29:47").Hidden = True
Rows("48:51").Hidden = True
Rows("53:56").Hidden = True
Rows("58:61").Hidden = True
Rows("63:66").Hidden = True
j = 1
k = -2
For i = 6 To 67
If Rows(i).Hidden = False Then
Range("A" & i) = j
j = j + 1
Range("B" & i) = k
k = k + 1
End If
Next i
End If
If Range("C1").Value = 2 Then
Rows("9").Hidden = True
Rows("11").Hidden = True
Rows("13").Hidden = True
Rows("15").Hidden = True
Rows("17").Hidden = True
Rows("19").Hidden = True
Rows("21").Hidden = True
Rows("23").Hidden = True
Rows("25").Hidden = True
Rows("27").Hidden = True
Rows("29:31").Hidden = True
Rows("33:35").Hidden = True
Rows("37:39").Hidden = True
Rows("41:43").Hidden = True
Rows("45:47").Hidden = True
Rows("48:51").Hidden = True
Rows("53:56").Hidden = True
Rows("58:61").Hidden = True
Rows("63:66").Hidden = True
j = 1
k = -2
For i = 6 To 67
If Rows(i).Hidden = False Then
Range("A" & i) = j
j = j + 1
Range("B" & i) = k
k = k + 1
End If
Next i
End If
If Range("C1").Value = 3 Then
Rows("9").Hidden = True
Rows("11").Hidden = True
Rows("13").Hidden = True
Rows("15").Hidden = True
Rows("17").Hidden = True
Rows("19").Hidden = True
Rows("21").Hidden = True
Rows("23").Hidden = True
Rows("25").Hidden = True
Rows("27").Hidden = True
Rows("29").Hidden = True
Rows("31").Hidden = True
Rows("33").Hidden = True
Rows("35").Hidden = True
Rows("37").Hidden = True
Rows("39").Hidden = True
Rows("41").Hidden = True
Rows("43").Hidden = True
Rows("45").Hidden = True
Rows("47").Hidden = True
Rows("48:50").Hidden = True
Rows("52:54").Hidden = True
Rows("56:58").Hidden = True
Rows("60:62").Hidden = True
Rows("64:66").Hidden = True
j = 1
k = -2
For i = 6 To 67
If Rows(i).Hidden = False Then
Range("A" & i) = j
j = j + 1
Range("B" & i) = k
k = k + 1
End If
Next i
End If
If Range("C1").Value = 4 Then
j = 1
k = -2
For i = 6 To 67
If Rows(i).Hidden = False Then
Range("A" & i) = j
j = j + 1
Range("B" & i) = k
k = k + 1
End If
Next i
End If
Range("A5:D67").Copy
Application.ScreenUpdating = True
End Sub