Excel VBA質問箱 IV

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

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


57547 / 76738 ←次へ | 前へ→

【23927】Re:開かれていない別のブックのシートの...
回答  Hirofumi  - 05/4/7(木) 19:18 -

引用なし
パスワード
   上手くいくかどうか解りませんがコードにするとこんな

Sub シートの追加()

  Dim Bookname As String
  Dim i As Long, j As Long
  Dim Shname As String
  Dim Fname As String
  Dim wkbDestination As Workbook
  
  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
  Set wkbDestination = Workbooks.Open(FileName:=Fname)
  Shname = GetSheetsName(Shname, wkbDestination)
  With wkbDestination
    If Shname <> "" Then
      .Worksheets(Shname).Copy After:=ThisWorkbook.Sheets("Menu")
      .Saved = True
    Else
      Beep
      MsgBox "該当するシートが有りません"
    End If
    .Close
  End With
  
  Set wkbDestination = Nothing
  
End Sub

Private Function GetSheetsName(strName As String, _
                wkbMark As Workbook) As String
  Dim wksMark As Worksheet
  
  For Each wksMark In wkbMark.Worksheets
    If StrComp(Trim(wksMark.Name), _
        Trim(strName), vbTextCompare) = 0 Then
      GetSheetsName = wksMark.Name
      Exit For
    End If
  Next wksMark
  
  Set wksMark = Nothing
  
End Function
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 お礼

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