Excel VBA質問箱 IV

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

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


57588 / 76738 ←次へ | 前へ→

【23886】開かれていない別のブックのシートの追加
質問  okb  - 05/4/6(水) 14:15 -

引用なし
パスワード
   http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=23850;id=excelで、投稿して解決したと思ったのですが、ダメでした。
処理方法を次のように変えました。
コピーされる側から、コピー元のブックを開いて、コピー元の1つのシートを
指定して、シートを追加後、コピー元のブックを閉じるというものです。
マクロは、次のとおりなんですがインデックスが、有効範囲にないエラーになります。
また、オープン時ファイルがない旨のエラーになります。

Sub シートの追加()
  Dim Bookname As String
  Dim I As Long, j As Long
  Dim Shname As String
  With ThisWorkbook.Worksheets("Menu")
         コピーされる側です。
    For j = 4 To 10 Step 3
      For I = 5 To 29 Step 2
        If .Cells(I, j).Value <> "" And .Cells(I, j - 1).Value <> "" Then
          Shname = Trim(.Cells(I, j - 1).Value)
          Exit For
        End If
      Next I
    Next j
  End With
  Bookname = "設備点検.xls"
        コピー元です。
  Fname = Range("O29").Value & Bookname
  MsgBox Fname
        C:\FreeSoft\000EXCEL\設備点検.xlsと表示されます。
  'Workbooks.Open Filename:=Fname
        これでオープンするとファイル見つからないとなります。
        下では、正常にオープンできるのになぜなんでしょうか?
  Workbooks.Open Filename:="C:\FreeSoft\000EXCEL\設備点検.xls"
  MsgBox Workbooks(Bookname).Name
        設備点検.xlsと表示されます 
  MsgBox Shname
        指定のシート名が表示されます
  MsgBox ThisWorkbook.Name
        コピーされる側のブック名を表示がされます 
  Workbooks(Bookname).Worksheets(Shname).Copy After:=ThisWorkbook.Sheets("Menu")
        ここでインデクスエラーとなるのですが、なぜなんでしょうか?
  Workbooks(Bookname).Saved = True
  Workbooks(Bookname).Close
End Sub

以上、よろしくお願いします。

0 hits

【23886】開かれていない別のブックのシートの追加 okb 05/4/6(水) 14:15 質問
【23889】Re:開かれていない別のブックのシートの... okb 05/4/6(水) 16:18 質問
【23904】Re:開かれていない別のブックのシートの... Hirofumi 05/4/6(水) 22:01 発言
【23905】Re:開かれていない別のブックのシートの... okb 05/4/7(木) 0:01 お礼
【23926】Re:開かれていない別のブックのシートの... Hirofumi 05/4/7(木) 19:00 回答
【23927】Re:開かれていない別のブックのシートの... Hirofumi 05/4/7(木) 19:18 回答
【23929】Re:開かれていない別のブックのシートの... okb 05/4/7(木) 23:33 お礼

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