Excel VBA質問箱 IV

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

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


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

【40445】特定のファイルを開き、データをコピーする 亜由美 06/7/13(木) 21:27 発言[未読]
【40446】Re:特定のファイルを開き、データをコピー... ぱっせんじゃー 06/7/13(木) 21:43 発言[未読]
【40447】Re:特定のファイルを開き、データをコピー... 亜由美 06/7/13(木) 21:49 質問[未読]
【40463】Re:特定のファイルを開き、データをコピー... Jaka 06/7/14(金) 10:46 発言[未読]
【40465】Re:特定のファイルを開き、データをコピー... Kein 06/7/14(金) 11:15 回答[未読]
【40466】Re:特定のファイルを開き、データをコピー... Kein 06/7/14(金) 11:18 発言[未読]
【40470】Re:特定のファイルを開き、データをコピー... 亜由美 06/7/14(金) 13:27 お礼[未読]

【40445】特定のファイルを開き、データをコピーす...
発言  亜由美  - 06/7/13(木) 21:27 -

引用なし
パスワード
   はじめまして。

VBA初心者でわからないのですが

ある、データの含まれているブックを開き
そこにある一部のデータを「データ集計」用のブックに
まとめたいと思っています。

しかし、そのVBAの組み方がわかりません。

基本中の基本だと思うのですが、
どなたか教えていただけませんか?

【40446】Re:特定のファイルを開き、データをコピ...
発言  ぱっせんじゃー  - 06/7/13(木) 21:43 -

引用なし
パスワード
   >ある、データの含まれているブックを開き

まず、この部分をマクロの自動記録してみてください。

【40447】Re:特定のファイルを開き、データをコピ...
質問  亜由美  - 06/7/13(木) 21:49 -

引用なし
パスワード
   ▼ぱっせんじゃー さん:

ファイル名を指定して特定のファイルを選ぶのは
以下のようでいいんですよね?

Sub ファイルを開く()
  Dim OpenFileName As String
  OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls")
  If OpenFileName <> "False" Then
    Workbooks.Open OpenFileName
  End If
End Sub


そのあとのデータをコピーする部分を記録してみたのですが
どうつなげればいいのか、わかりません。
教えてください。


'Sub Macro3()
  ChDir "C:\Documents and Settings\AYUMI\デスクトップ"
  Workbooks.Open Filename:="C:\Documents and Settings\AYUMI\デスクトップ\元データ.xls"
  ActiveWindow.SmallScroll Down:=-6
  Range("B2:F6").Select
  Selection.Copy
  Windows("書き込みデータ.xls").Activate
  Range("B3").Select
  ActiveSheet.Paste
  Windows("元データ.xls").Activate
  Range("B9:F13").Select
  Application.CutCopyMode = False
  Selection.Copy
  Windows("書き込みデータ.xls").Activate
  Range("B9").Select
  ActiveSheet.Paste
  Application.CutCopyMode = False
  ActiveWorkbook.Save
End Sub

【40463】Re:特定のファイルを開き、データをコピ...
発言  Jaka  - 06/7/14(金) 10:46 -

引用なし
パスワード
   シート名がわからないので、左から1番目を対象としてます。
なんとなく解りやすそうにしてみました。

Sub ファイルを開く()
  Dim OpenFileName As String,OpFNam As string
  OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls")
  If OpenFileName = "False" Then
    Exit Sub
  End If
  Workbooks.Open OpenFileName
  OpFNam = ActiveWorkbook.Name

  Workbooks(OpFNam).Sheets(1).Range("B2:F6").Copy
  Workbooks("書き込みデータ.xls").Sheets(1).Range("B3").PasteSpecial
  Workbooks(OpFNam).Sheets(1).Range("B9:F13").Copy
  Workbooks("書き込みデータ.xls").Sheets(1).Range("B9").PasteSpecial
  Workbooks("書き込みデータ.xls").Save
End Sub

【40465】Re:特定のファイルを開き、データをコピ...
回答  Kein  - 06/7/14(金) 11:15 -

引用なし
パスワード
   値を引っ張るだけなら、ブックを開かなくてもリンクを使って出来ます。
概ね以下のようなコードになります。

Sub Data_Link()
  Dim WB As Workbook
  Dim Flg As Boolean
  Dim MyF As String, LkSt1 As String, LkSt2 As String
  Const Fol As String = _
  "C:\Documents and Settings\AYUMI\デスクトップ"

  ChDir Fol
  MyF = Application _
  .GetOpenFilename("Microsoft Excelブック(*.xls),*.xls")
  If MyF = "False" Then Exit Sub
  For Each WB In Workbooks
    If WB.Name = "書き込みデータ.xls" Then
     Flg = True: Exit For
    End If
  Next
  If Flg = False Then
    Workbooks.Open ThisWorkbook.Path & "\書き込みデータ.xls"
  End If
  LkSt1 = "='" & Fol & "\[" & Dir(MyF) & "]Sheet1'B2"
  LkSt2 = "='" & Fol & "\[" & Dir(MyF) & "]Sheet1'B9"
  With Workbooks("書き込みデータ.xls").Worksheets(1)
    With .Range("B3:F7")
     .Formula = LkSt1
     .Value = .Value
    End With
    With .Range("B9:F13")
     .Formula = LkSt2
     .Value = .Value
    End With
  End With
  Workbooks("書き込みデータ.xls").Save
End Sub

【40466】Re:特定のファイルを開き、データをコピ...
発言  Kein  - 06/7/14(金) 11:18 -

引用なし
パスワード
   最後にカレントフォルダーを、通常ブックを保存しているフォルダーに戻しておくなら

  Workbooks("書き込みデータ.xls").Save
  ChDir Application.DefaultFilePath '←これを追加して下さい。
End Sub

【40470】Re:特定のファイルを開き、データをコピ...
お礼  亜由美  - 06/7/14(金) 13:27 -

引用なし
パスワード
   ありがとうございましたw

おかげで処理できましたwwwwww
本当に、なんてお礼の言葉を言ってよいものか・・・・


これからも、何かあったら助けてくださいねw


ほんとうに ありがとうございましたw

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