これは大きな問題ではありませんが、私の肌の下にあります。私はサブフォームとの間で変数を共有しようとしています。パブリック変数を宣言するのは簡単な方法ですが、明らかに、ユーザーフォーム内からパブリック変数を宣言することはできません。だから、まったく無関係なモジュールで変数を宣言しなければならないようです。これは、ユーザーフォーム内のサブシステム間で変数を渡す唯一の方法ですか?ExcelからVBA変数を共有すると、Userfrom Subs内で
コンテキストでは、設定のユーザーフォームに「OK」、「適用」、「キャンセル」ボタンを作成しようとしています。ここで、「OK」および「適用」ボタンは設定で永久に変更します。
リストボックス(PathList)から項目を削除するボタンです。リストボックスはワークシートにデータを格納していますが、「適用」を押すまでは実際にシートからアイテムを削除したくありません。 "Apply"ボタンが実際にシートからセルを削除できるように、SelectedArray()変数をApplyButton_Clickサブルーチンと共有したいと思います。コメントされたコードは、私が "適用"ボタンにしたいものです。
Private Sub RemovePathButton_Click()
Dim SelectedArray()
Dim ctr As Integer
ctr = 1
For intCount = PathList.ListCount - 1 To 0 Step -1
If PathList.Selected(intCount) = True Then
ReDim Preserve SelectedArray(ctr)
SelectedArray(ctr) = intCount
ctr = ctr + 1
End If
Next intCount
For i = 1 To UBound(SelectedArray)
' Dim num As Integer
' num = SelectedArray(i) + 4
' Worksheets("Settings").Range("A" + CStr(num)).Delete (xlShiftUp)
PathList.RemoveItem (SelectedArray(i))
Next
End Sub
ありがとうございます!私はそれがそれのように単純でなければならないことを知っていた。これは通常のモジュールでも使えますか?すべてのサブ共有がモジュール内の変数を共有する前に変数を宣言するだけですか? –
@AlecHolmesようこそ。はい、そうです。これは、モジュールの最上位に宣言するとモジュールレベル変数と呼ばれます。 – sktneer