<Excel UserForm ラベルに情報を表示する>
どうも、三流プログラマーのKen3です。 今回は、 Excelのユーザーフォームに、 ラベルで情報を表示してみます。 今回のサンプルファイルは、 http://www.ken3.org/vba/lzh/vba122.lzh にvba122.xlsが保存されています。/* * 1. 今回のキッカケ */
前回、質素な(機能的に貧しい)、 ファイル選択のユーザーフォームを作成しました。 作成したユーザーフォームを呼ぶ前に カレントディレクトリをセットして、 ユーザーフォームを呼ぶ、そんな処理でした。
Sub ccc() ChDrive "E" 'ドライブの変更 ChDir "e:\work" 'フォルダーの変更 UserForm1.Show 'ユーザーフォームを表示する End Sub |
Private Sub UserForm_Initialize() 'ラベルにフォルダーを表示する Me.Label1.Caption = CurDir() & "\" 'カレントディレクトリをセットする 'フォームの初期化イベントでリストボックスにデータをセットする Dim strWORK As String Me.ListBox1.Clear '.Clearで内容を全てクリア strWORK = Dir("vb*.lzh") 'カレントのVB*.lzhを検索する While strWORK <> "" '取得したファイル名をリストに追加する、ITEMの追加 Me.ListBox1.AddItem (strWORK) '次のファイル名を取得する strWORK = Dir() '引数無しで呼ぶと次のファイル名がセットされる Wend End Sub |
Public Function getFOLDER() As String Dim objShell As Object 'Shell Dim objFolder As Object 'Shell32.Folder Const strTitle = "フォルダを選択してください。" 'シェルのオブジェクトを作成する Set objShell = CreateObject("Shell.Application") 'フォルダー参照に設定 Const lngRef = &H1 'ルートフォルダーをデスクトップに設定 '5でMy Documents、6でFavoritesなど Const fldRoot = &H0 Set objFolder = _ objShell.BrowseForFolder(0, _ strTitle, lngRef, fldRoot) 'フォルダー名を取出し、リターン値をセット If objFolder Is Nothing Then 'キャンセルチェック getFOLDER = "" 'リターン値に""空文字列をセット Else If objFolder.ParentFolder Is Nothing Then '下位を未選択デスクトップ? Dim objWShell As Object 'WScript.Shell 'シェルのオブジェクトを作成する Set objWShell = CreateObject("WScript.Shell") 'デスクトップの場所を返す getFOLDER = objWShell.SpecialFolders("Desktop") 'オブジェクトの開放 Set objWShell = Nothing Else getFOLDER = objFolder.Items.Item.Path 'パスをセットする End If End If Set objFolder = Nothing Set objShell = Nothing End Function |
Private Sub CommandButton2_Click() Dim strFOLDER As String '選択されたフォルダー名称 strFOLDER = getFOLDER() 'フォルダーの選択関数を呼ぶ If strFOLDER = "" Then '選択結果がキャンセルかチェックする Exit Sub '関数を途中で抜ける End If 'カレントドライブ、ディレクトリを変更する ChDrive Left(strFOLDER, 1) '頭のドライブ文字のセット ChDir strFOLDER 'フォルダーの変更 'リストボックスの内容を変更する 'ラベルにフォルダーを表示する Me.Label1.Caption = CurDir() & "\" 'カレントディレクトリをセットする 'フォームの初期化イベントでリストボックスにデータをセットする Dim strWORK As String Me.ListBox1.Clear '.Clearで内容を全てクリア strWORK = Dir("vb*.lzh") 'カレントのVB*.lzhを検索する While strWORK <> "" '取得したファイル名をリストに追加する、ITEMの追加 Me.ListBox1.AddItem (strWORK) '次のファイル名を取得する strWORK = Dir() '引数無しで呼ぶと次のファイル名がセットされる Wend End Sub |
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
気になったジャンル↓を選択してください。 人気記事(来場者が多いTOP3): Excel関係: Access関係: その他:VBAの共通関数やテキストファイルの操作など 開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う] 仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力] ※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。 |
Blogとリンク:[三流君の作業日記]/
[VBAやASPのサンプルコード]/
広告-[通販人気商品の足跡]