Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9833 / 13646 ツリー ←次へ | 前へ→

【25094】他エクセルファイル(同一フォルダ)のデータリストをリストボックスに表示... 野菜畑 05/5/20(金) 9:34 質問[未読]
【25134】Re:他エクセルファイル(同一フォルダ)の... だるま 05/5/20(金) 21:36 回答[未読]
【25135】Re:他エクセルファイル(同一フォルダ)の... だるま 05/5/20(金) 21:39 回答[未読]
【25231】Re:他エクセルファイル(同一フォルダ)の... 野菜畑 05/5/24(火) 22:28 質問[未読]

【25094】他エクセルファイル(同一フォルダ)のデ...
質問  野菜畑 E-MAIL  - 05/5/20(金) 9:34 -

引用なし
パスワード
   お世話になります。
VBA初心者です。
どうしたらいいか判らないことがあります。
特定のエクセルファイルの特定のシートの特定の場所
(例 A.xls sheet2 A1..C100)
のデータ(リスト)を現在アクティブなファイルにリストボックスを作成して
表示させたいのですが...?。
実際はそのリストから必要な部分(例 同一な行のデータ A10.B10.C10)
を取得したい。

【25134】Re:他エクセルファイル(同一フォルダ)...
回答  だるま WEB  - 05/5/20(金) 21:36 -

引用なし
パスワード
   こんにちは

UserFormを使用した例です。
UserFormに、ListBox1, cmdOK, cmdキャンセル を配置します。
ListBox1のListCountプロパティを3にします。

以下のコードをフォームモジュールに貼り付けます。

UserFormを表示し(表示方法は任意)、
cmdOKのクリックでアクティブセルから右に、選択した値が入力されます。^d^

Option Explicit

Private DataBook As Workbook
Private flgOpened As Boolean
Private rngDest As Range

Private Sub cmdOK_Click()
  Dim i As Integer
  With Me.ListBox1
    If .ListIndex = -1 Then Exit Sub
    For i = 0 To 2
      rngDest.Offset(, i).Value = .List(.ListIndex, i)
    Next
  End With
  Unload Me
End Sub

Private Sub cmdキャンセル_Click()
  Unload Me
End Sub

Private Sub UserForm_Initialize()
  Dim DataPath As String
  
  DataPath = "A.xls"
  Set rngDest = ActiveCell
  
  On Error Resume Next
  Set DataBook = Workbooks(DataPath)
  On Error GoTo 0
  
  If DataBook Is Nothing Then
    flgOpened = False
    DataPath = ThisWorkbook.Path & "\" & DataPath
    Set DataBook = Workbooks.Open(DataPath)
  Else
    flgOpened = True
  End If
  
  Me.ListBox1.RowSource = _
    DataBook.Worksheets("Sheet2").Range("A1:C100") _
    .Address(1, 1, xlA1, 1)
    
End Sub

Private Sub UserForm_Terminate()
  If flgOpened = False Then
    DataBook.Close False
  End If
End Sub

【25135】Re:他エクセルファイル(同一フォルダ)...
回答  だるま WEB  - 05/5/20(金) 21:39 -

引用なし
パスワード
   >ListBox1のListCountプロパティを3にします。

間違えました。
ListBox1のColumnCountプロパティを3にします。
です。^d^

【25231】Re:他エクセルファイル(同一フォルダ)...
質問  野菜畑 E-MAIL  - 05/5/24(火) 22:28 -

引用なし
パスワード
   ▼だるま さん:
>>ListBox1のListCountプロパティを3にします。
>
>間違えました。
>ListBox1のColumnCountプロパティを3にします。
>です。^d^
だるまさん
ありがとうございました。
現在、リストボックスにデータが表示されるようにはなったのですが
データを選択してOKを押してもセルにデータが入りません。
Private Sub commandobutton1_Click()
  Dim i As Integer
  With Me.ListBox1
    If .ListIndex = -1 Then    
    MsgBox "選択されてません"    
    Else    
    For i = 0 To 1
      rngDest.Offset(, i).Value = .List(.ListIndex, i)      
    Next    
    End If      
  End With  
End Sub
こんな状態なのですが、VBA初心者の私には解決策が見当たりません。
判る方がおりましたらよろしくお願いします。

9833 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free