pgbigorokuのブログ

プログラムの再利用できそうなコードをアップ

EXCEL VBA 現在開いているブック名をコンボボックスに入れる

'現在開いているブック名をコンボボックスに入れる
'
'URL https://pgbigoroku.hatenablog.com/entry/2022/08/15/100724
'必要関数URL https://pgbigoroku.hatenablog.com/entry/2022/08/15/100527
'Ver.2022.8.15
Public Sub nipsub現在開いているブック名をコンボボックスに入れる(ByRef pcmb代入先 As ComboBox, _
                                                                ByRef pwkb除外 As Workbook)
    Dim wkbFor As Workbook
    Dim str初期値 As String
    str初期値 = pcmb代入先.Text
    pcmb代入先.Clear
    pcmb代入先.Text = ""
    For Each wkbFor In Workbooks
        If wkbFor.Name = pwkb除外.Name Then
            '何も処理をしない。
        Else
            pcmb代入先.AddItem wkbFor.Name
        End If
    Next
    If nipblnコンボボックスに指定リストがあるか(pcmb代入先, str初期値) = True Then
        pcmb代入先.Text = str初期値
    ElseIf pcmb代入先.ListCount = 0 Then
        pcmb代入先.Text = ""
    Else
        pcmb代入先.Text = pcmb代入先.List(0)
    End If

End Sub

'コンボボックスに指定リストがあるか
'
'URL https://pgbigoroku.hatenablog.com/entry/2022/08/15/100527
'Ver.2022.8.15
Public Function nipblnコンボボックスに指定リストがあるか(ByRef pcmb代入先 As ComboBox, _
                                                    ByVal pstr検索文字 As String) As Boolean
    Dim strFor As String
    Dim intFor As Integer
    For intFor = 0 To pcmb代入先.ListCount - 1
        If strFor = pstr検索文字 Then
            nipblnコンボボックスに指定リストがあるか = True
            Exit Function
        End If
    Next
    nipblnコンボボックスに指定リストがあるか = False
End Function