Excel VBA質問箱 IV

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

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


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

【15225】値だけを次々に貼り付け ウーロン茶 04/6/17(木) 16:49 質問[未読]
【15228】Re:値だけを次々に貼り付け Asaki 04/6/17(木) 16:56 回答[未読]
【15231】Re:値だけを次々に貼り付け ウーロン茶 04/6/17(木) 17:23 質問[未読]
【15233】Re:値だけを次々に貼り付け Asaki 04/6/17(木) 17:35 回答[未読]
【15234】Re:値だけを次々に貼り付け ウーロン茶 04/6/17(木) 17:41 発言[未読]
【15235】Re:値だけを次々に貼り付け Jaka 04/6/17(木) 17:41 回答[未読]
【15236】Re:値だけを次々に貼り付け Jaka 04/6/17(木) 17:48 発言[未読]
【15238】Re:値だけを次々に貼り付け ウーロン茶 04/6/17(木) 18:08 質問[未読]
【15240】Re:値だけを次々に貼り付け Asaki 04/6/17(木) 18:37 回答[未読]
【15245】Re:値だけを次々に貼り付け ウーロン茶 04/6/17(木) 19:48 質問[未読]
【15256】Re:値だけを次々に貼り付け Asaki 04/6/17(木) 23:34 回答[未読]
【15261】Re:値だけを次々に貼り付け ウーロン茶 04/6/18(金) 10:00 お礼[未読]

【15225】値だけを次々に貼り付け
質問  ウーロン茶  - 04/6/17(木) 16:49 -

引用なし
パスワード
   はじめまして。
Book1のSheet1のA列に、
Book2のSheet1からSheet8までの全シートのA列のデータ(文字列の計算結果)の値だけを
あるだけ順番にコピーしたいのですが、どうすればよいのか見当もつきません。

申し訳ありませんが、ご教授頂けないでしょうか。
よろしくお願いします。

【15228】Re:値だけを次々に貼り付け
回答  Asaki  - 04/6/17(木) 16:56 -

引用なし
パスワード
   こんにちは。

先ずは、
値のみコピー
の操作を、マクロの記録で記録してみてはいかがですか?

【15231】Re:値だけを次々に貼り付け
質問  ウーロン茶  - 04/6/17(木) 17:23 -

引用なし
パスワード
   ▼Asaki さん:
すいません。一応、記録もやってみました。
見よう見まねで書いたコードで、Sheet1だけは動くようになったんですが、
(値だけを貼り付けられないのと、次のシートをA列の最後尾から続けて貼り付ける
 方法が分からないため、意味がないと思い、さっきは書きませんでした。)
ここで行き詰まってしまいました。
よろしくお願いします。

データ = Range("A4").End(xlDown).Row
  Dim File1 As Workbook
  Set File1 = Workbooks.Open(Filename:="D:\Book2.xls")
  File1.Worksheets("Sheet1").Range("A4:A" & データ).Copy _
    Destination, xlValues:=Workbooks("Book1.xls").Worksheets("Sheet1").Range("A1")
  File1.Close

【15233】Re:値だけを次々に貼り付け
回答  Asaki  - 04/6/17(木) 17:35 -

引用なし
パスワード
   動いてるんですか?
そうは思えないんですが。。。

Book2を開く
Book2のSheet1のA列データをコピー
Book1に戻って、貼り付けたいセルで右クリック >> 形式を選択して貼り付け で「値」を選択
Book2を閉じる
の手順を記録するとどうなりますか?

【15234】Re:値だけを次々に貼り付け
発言  ウーロン茶  - 04/6/17(木) 17:41 -

引用なし
パスワード
   ▼Asaki さん:
>動いてるんですか?
>そうは思えないんですが。。。
>
あれはあれで「値だけをコピー」というのを無視すれば動いている、という意味なんですが・・・

【15235】Re:値だけを次々に貼り付け
回答  Jaka  - 04/6/17(木) 17:41 -

引用なし
パスワード
   これじゃダメ?

File1.Worksheets("Sheet1").Range("A4:A" & データ).Copy
sh1E = Worksheets("Sheet1").Range("A1").end(xlup).row + 1
Workbooks("Book1.xls").Worksheets("Sheet1").Range("A" & Sh1E).PasteSpecial Paste:=xlValues

【15236】Re:値だけを次々に貼り付け
発言  Jaka  - 04/6/17(木) 17:48 -

引用なし
パスワード
   よく見ないでレスしちゃったけど、「データ」の値がごっちゃになっていませんか?
どのブック対象かはっきりさせた方がいいと思います。

【15238】Re:値だけを次々に貼り付け
質問  ウーロン茶  - 04/6/17(木) 18:08 -

引用なし
パスワード
   ▼Jaka さん:
>よく見ないでレスしちゃったけど、「データ」の値がごっちゃになっていませんか?
>どのブック対象かはっきりさせた方がいいと思います。
データの値は大丈夫のようです。
Jakaさんに頂いたコードと xlvalues で値の貼り付けはうまくいきました。
ありがとうございます。

データ = Range("A4").End(xlDown).Row
  Dim File1 As Workbook
  Set File1 = Workbooks.Open(Filename:="D:\Book2.xls")
  File1.Worksheets("Sheet1").Range("A4:A" & データ).Copy _
  sh1E = Worksheets("Sheet1").Range("A1").end(xlup).row + 1
  Workbooks("Book1.xls").Worksheets("Sheet1").Range("A" & Sh1E).PasteSpecial Paste:=xlValues
  File1.Close

データの最後尾へ移動させて続きを行う方法をもう少し考えてみます。
ご教授よろしくお願いします。

【15240】Re:値だけを次々に貼り付け
回答  Asaki  - 04/6/17(木) 18:37 -

引用なし
パスワード
   >データの値は大丈夫のようです。

>データ = Range("A4").End(xlDown).Row
これはBook1の方から値を取得して
>File1.Worksheets("Sheet1").Range("A4:A" & データ).Copy
使っているのがBook2ですから、必ずデータ件数が一緒である保証がないと
おかしくなるような気がしますが。


↓こんな感じでもいけそう。。。?
Sub test()
  Dim File1  As Workbook
  Dim File2  As Workbook
  Dim i    As Long
  
  Set File2 = Workbooks("Book1.xls")
  Set File1 = Workbooks.Open(Filename:="D:\Book2.xls")
  
  For i = 1 To 8
    With File1.Worksheets("Sheet" & i)
      .Range(.Cells(1, 1), .Cells(65536, 1).End(xlUp)).Copy
    End With
    File2.Cells(65536, 1).End(xlUp).Offset(IIf(Cells(1, 1).Value = "", 0, 1)).PasteSpecial _
      Paste:=xlValues
  Next i
  File1.Close

  Set File1 = Nothing
  Set File2 = Nothing
End Sub

【15245】Re:値だけを次々に貼り付け
質問  ウーロン茶  - 04/6/17(木) 19:48 -

引用なし
パスワード
   ▼Asaki さん:
ありがとうございます。やってみました。
それで↓の部分なんですが、次のシートに移ったときに、前のシートの最下行のデータの
上から上書きしてしまい、この部分の書き方がよくわからないため、修正できないでいます。どうしたらよいでしょうか?
>    File2.Cells(65536, 1).End(xlUp).Offset(IIf(Cells(1, 1).Value= "", 0, 1)).PasteSpecial _
>      Paste:=xlValues

【15256】Re:値だけを次々に貼り付け
回答  Asaki  - 04/6/17(木) 23:34 -

引用なし
パスワード
   すみません。
テストしてないのがバレバレです。
全体を再度Upします。

Sub test()
  Dim File1  As Workbook
  Dim File2  As Workbook
  Dim i    As Long
 
  Set File2 = Workbooks("Book1.xls")
  Set File1 = Workbooks.Open(Filename:="D:\Book2.xls")
 
  For i = 1 To 8
    With File1.Worksheets("Sheet" & i)
      .Range(.Cells(1, 1), .Cells(65536, 1).End(xlUp)).Copy
    End With
    With File2.Worksheets("Sheet1")
      .Cells(65536, 1).End(xlUp).Offset(IIf(.Cells(1, 1).Value = "", 0, 1)).PasteSpecial _
      Paste:=xlValues
    End With
  Next i
  File1.Close

  Set File1 = Nothing
  Set File2 = Nothing
End Sub

【15261】Re:値だけを次々に貼り付け
お礼  ウーロン茶  - 04/6/18(金) 10:00 -

引用なし
パスワード
   ▼Asaki さん:
おかげさまでうまくいきました。
どうもありがとうございました。

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