Excel VBA質問箱 IV

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

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


56464 / 76732 ←次へ | 前へ→

【25020】Re:再びSOSです!
発言  Jaka  - 05/5/18(水) 9:36 -

引用なし
パスワード
   おはようございます。
昨日さんまとロンドンブーツを見ながら、つんさんのコードを手本に作っていたら、何となく原因がわかりました。

>      ReDim strTougou(.ListCount - 1)
           ↑ここで先に配列を作っていますが
      ↓配列に値を入れる時に配列のインデックスをループカウンタを使用
       してますね!
       多分リストボックスがマルチ選択にしている仮定すると、飛び飛び
       選択した場合、配列に何も入ってない個所が出来るわけでぇ〜。
       要するに配列の中身が不完全の性じゃないかと....。
       全部選択した時は、まともに動きませんでしたか!
>      For i = 0 To .ListCount - 1
>        strTougou(i) = """'" & ActiveWorkbook.Path & "\[" & ActiveWorkbook.Name & "]" & .List(i) & "'!" & pr_strAddress & """"
>        
>      Next i

で、テレビ見ながら作ったものです。
マクロブック等にコードを書くとして、アクティブシートに書き込むようにしてあります。
変更の余地はいっぱいあると思います。
尚、範囲等は直してください。

標準モジュール

Public ACWB As Workbook, TWB As Workbook
Public TWBpt As String, TWBNm As String

Sub tougou()
  Dim Fname As Variant
  Dim LstTB() As String
  Set ACWB = ActiveWorkbook
  Fname = Application.GetOpenFilename("統合ファイル(*.xls),*.xls", , "Open Files (XLS)")
  If Fname = False Then Exit Sub
  
  Set TWB = Workbooks.Open(Fname)
  ReDim LstTB(1 To TWB.Worksheets.Count)
  For i = 1 To TWB.Worksheets.Count
    LstTB(i) = TWB.Worksheets(i).Name
  Next
  
  TWBpt = TWB.Path
  TWBNm = TWB.Name
  With UserForm1
     'リストボックスをマルチ選択にする。
    .ListBox1.MultiSelect = fmMultiSelectExtended
    .ListBox1.List = LstTB
    Erase LstTB
    .Show
  End With
End Sub

フォームモジュール
(リストボックス、ボタンが1個づつあるとして)

Private Sub CommandButton1_Click()
  Dim ShTb() As String, RCAd As String, CNT As Integer
  RCAd = Range("A2:E11").Address(, , xlR1C1)
  For i = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i) = True Then
      CNT = CNT + 1
      ReDim Preserve ShTb(1 To CNT)
      ShTb(CNT) = "'" & TWBpt & "\[" & TWBNm & "]" & ListBox1.List(i) & "'!" & RCAd
    End If
  Next
  ACWB.Sheets(1).Range("C3").Consolidate Sources:=ShTb, Function:=xlSum, _
          TopRow:=False, LeftColumn:=False, CreateLinks:=False
  TWB.Close (False)
  Set ACWB = Nothing
  Set TWB = Nothing
  DoEvents
  Unload Me
End Sub

0 hits

【24845】「統合」の「統合元」を変数で指定するとエラーが? つん 05/5/11(水) 16:27 質問
【24851】Re:「統合」の「統合元」を変数で指定する... Jaka 05/5/11(水) 17:28 発言
【24853】Re:「統合」の「統合元」を変数で指定する... ichinose 05/5/11(水) 17:49 発言
【24856】Re:「統合」の「統合元」を変数で指定する... ichinose 05/5/11(水) 18:08 発言
【24857】Re:「統合」の「統合元」を変数で指定する... Kein 05/5/11(水) 18:24 発言
【24860】アホなことしてたのわかりました(>_<) つん 05/5/11(水) 20:05 発言
【24914】Re:アホなことしてたのわかりました(>_... Jaka 05/5/13(金) 15:26 発言
【24918】試行錯誤中です〜 つん 05/5/13(金) 19:23 発言
【24999】再びSOSです! つん 05/5/17(火) 13:22 質問
【25000】Re:再びSOSです! ウッシ 05/5/17(火) 14:29 回答
【25021】やっぱりアホでした・・・ つん 05/5/18(水) 9:38 お礼
【25020】Re:再びSOSです! Jaka 05/5/18(水) 9:36 発言
【25023】そのやり方は思いつきませんでした! つん 05/5/18(水) 9:44 発言
【25029】出来ました(^o^)ノ つん 05/5/18(水) 12:16 お礼

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