Excel VBA質問箱 IV

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

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


56636 / 76732 ←次へ | 前へ→

【24845】「統合」の「統合元」を変数で指定するとエラーが?
質問  つん E-MAIL  - 05/5/11(水) 16:27 -

引用なし
パスワード
   いつもお世話になります^^
質問させていただきます。

うちの会社では「統合」をよくつかいます。
標準機能でも十分なんですが、もちっと簡単にしてみようと、マクロにすることにしました。
統合させる表は、全く構成の表で、例えば、「統合テスト.xls」の「4月」、「5月」、「6月」といった月別の表があり、それを同ブックの「1月〜3月累計」シートに統合させます。
マクロは、「Personal.xls」に組んでいます。

コードは以下の通りです。

ユーザーフォーム上に

ラベル lblSaki(統合先のシート名&範囲のアドレスを表示)
リスト lstSheet (統合元のシート名をリスト(範囲は先と同じ))
コマンドボタン 3つ(「追加」「削除」「実行」用)

Option Explicit
    Private pr_strAddress As String '統合範囲(R1C1型式)
    Private pr_strSaki As String  '統合先の先頭アドレス
    Private pr_ws As Worksheet   '統合先シート


Private Sub UserForm_Initialize()

  Dim r As Range
  
  If Selection.Areas.Count > 1 Then
    MsgBox "範囲指定は一ヶ所にしてください"
    Exit Sub
  End If
  
  lblSaki.Caption = ActiveSheet.Name & " " & Selection.Address
  pr_strAddress = Selection.Address(ReferenceStyle:=xlR1C1)
  pr_strSaki = ActiveCell.Address
  Set pr_ws = ActiveSheet

End Sub


Private Sub cmdOK_Click()’実行ボタン

  Dim strTougou As String
  Dim i As Long
  
  With lstSheet
    If .ListCount = -1 Then
      MsgBox "統合するシートを選んでください"
      Exit Sub
    Else
      For i = 0 To .ListCount - 1
        strTougou = strTougou & """'" & ActiveWorkbook.Path & "\[" & ActiveWorkbook.Name & "]" & .List(i) & "'!" & pr_strAddress & ""","
      Next i
    End If
  End With
  
  strTougou = Left$(strTougou, Len(strTougou) - 1)
  
  Debug.Print strTougou
  
  pr_ws.Range(pr_strSaki).Consolidate sources:=Array(strTougou), Function:=xlSum
  
End Sub

これを実行すると、どうしても、上記(太字)の統合させる場所でエラーが出てしまいます。
どういったエラーかというと、『統合元ファイル'[統合テスト.xls]4月"を開くことができません』です。

試しに、マクロの記録で統合すると、以下のようなコードが生成されました。


  Range("G13:AA24").Select
  Selection.Consolidate Sources:=Array( _
    "'C:\WINDOWS\デスクトップ\[統合テスト.xls]4月'!R13C7:R24C27", _
    "'C:\WINDOWS\デスクトップ\[統合テスト.xls]5月'!R13C7:R24C27", _
    "'C:\WINDOWS\デスクトップ\[統合テスト.xls]6月'!R13C7:R24C27"), Function:=xlSum, TopRow _
    :=False, LeftColumn:=False, CreateLinks:=False

もともと、これを参考にコードを組んだわけです。
「Array()」の中を、変数(strTougou)なわけですが、

Debug.Print strTougou

で確かめると、

中味は、

"'C:\WINDOWS\デスクトップ\[統合テスト.xls]4月'!R13C7:R24C27",
"'C:\WINDOWS\デスクトップ\[統合テスト.xls]5月'!R13C7:R24C27",
"'C:\WINDOWS\デスクトップ\[統合テスト.xls]6月'!R13C7:R24C27"


記録で生成されたコードと同じのようなんですが・・・
何がいけないのか、さっぱりわかりません。
ちなみに、マクロの記録も、実行ブックと別ブックに記録して、そこから実行してみると、正常に動きます。

アドバイスの程よろしくお願いします。

うまくまとめられず長くなりました(^^;
すんません(>_<)

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 お礼

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