アプリケーションとしてのVBA Excel(エクセル) VBA の役立つ Tips の紹介

アプリケーションとしてのVBA

フォームを使用して、開いている Book や Sheet を選択する

フォームを使用して、開いている Book や Sheet を選択する


  フォームを活用することで使いやすいユーザーインターフェースを持たせることが
  できます。

  サンプルアプリケーションで使用しているブックやシートを選択する部分の説明です。


  example3 で説明します。。

  フォームを使用して、開いている Book や Sheet を選択する Function です。

  Select_Book_or_Sheet で フォームを表示して、上から何番目の Book または
  Sheet が選択されたかを判断し、Book または Sheet の名前を返します。
    
Public SelIndex, SelectInit_Book_or_Sheet As Integer

Sub Sample()

    Dim Caption_String As String
    Dim SourceBook As String
    
    '代入する値が入っているWookbookの名前を取得 [Source Bookの選択]
    SelectInit_Book_or_Sheet = 0
    Caption_String = "代入する値が入っているWorkbookの選択 (Source)"
    SourceBook = Select_Book_or_Sheet(Caption_String)
    
    'キャンセルボタンが押された場合には終了します
    If SelIndex = -1 Then
        End
    End If
    
End Sub

Function Select_Book_or_Sheet(Caption_String) As String

    'SelIndex に 初期値を代入します (代入しておかなくても動作します)
    SelIndex = -1
    
    'UserForm のタイトル部分に Caption_String で定義された文字を表示
    しますUserForm1.Caption = Caption_String
    
    'フォームを表示させます
    UserForm1.Show
    
    
    '++++++++++++++++++++++++++++++++++++
    '
    '制御(動作)がフォーム側に移っています
    '
    '++++++++++++++++++++++++++++++++++++
    
    
    'OK または キャンセル ボタンが押されて、
    'フォームから制御が帰ってきました
    
    
    'SelIndex = -1 キャンセルボタンが押されました
    '-1 以外は、上から何番目の Book または sheet を選択したかが
    'SelIndex に代入されています
    
    If SelIndex = -1 Then
        Select_Book_or_Sheet = ""
    Else
        If SelectInit_Book_or_Sheet = 0 Then
            Select_Book_or_Sheet = Workbooks(SelIndex).Name
        Else
            Select_Book_or_Sheet = Sheets(SelIndex).Name
        End If
    End If

End Function
    
    コメントを読んでもらえれば特に説明の必要はありませんね。
    
作成したフォームでBookを選択する

    こんな感じで表示されます。



Copy (C) 2005   アプリケーションとしてのVBA   All Rights Reserved.